一、Spring对不同的持久化层技术都进行封装

【Spring学习】之 JdbcTemplate_JdbcTempla



二、操作

1.导包

【Spring学习】之 JdbcTemplate_mysql_02

2.jdbcTemplateTest1.java

【Spring学习】之 JdbcTemplate_mysql_03

3.结果

【Spring学习】之 JdbcTemplate_JdbcTempla_04


其他操作

添加操作

【Spring学习】之 JdbcTemplate_sql_05

删除操作

【Spring学习】之 JdbcTemplate_sql_06

查询操作

【Spring学习】之 JdbcTemplate_spring_07

【Spring学习】之 JdbcTemplate_spring_08


【Spring学习】之 JdbcTemplate_sql语句_09


【Spring学习】之 JdbcTemplate_mysql_10

【Spring学习】之 JdbcTemplate_spring_11

源代码

package cn.yyf.jdbc;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

/**
* Created by Donald on 2017/2/5.
*/
public class JdbcTemplateDemo1

//1.添加操作
@Test
public void add(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");

//创建jdbcRTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//调用jdbcTemplate对象里面的方法实现操作
//创建sql语句
String sql = "insert into users values(?, ?, ?, ?, ?, ?)";
int rows = jdbcTemplate.update(sql, 102, "yyf", "haha@163.com", 1, 112, "123");
System.out.println(rows);
}

//2.update操作
@Test
public void update(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");

//创建jdbcRTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//调用jdbcTemplate对象里面的方法实现操作
//创建sql语句
String sql = "UPDATE users SET passwd=? WHERE id=?";
int rows = jdbcTemplate.update(sql, "456", 102);
System.out.println(rows);
}

//3.delete操作
@Test
public void delete(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");

//创建jdbcRTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//调用jdbcTemplate对象里面的方法实现操作
//创建sql语句
String sql = "DELETE from users WHERE id=?";
int rows = jdbcTemplate.update(sql, 102);
System.out.println(rows);
}

/**
* QueryRunner runner = new QueryRuner(datasource);
* 返回对象
* runner.query(sql, new BeanHandler<User>(User.class));
*
* 返回list集合
* runner.query(sql, new BeanListHander<User>(User.class))
*
* 1. 在dbutils时候,有接口ResultSetHandler
* dbutils提供了针对不同的结果实现类
*
*
* 2. jdbcTemplate实现查询,有接口RowMapper,
* jdbcTemplate针对这个接口没有提供实现类,得到不同的类型数据需要自己进行数据封装
*
*
*/

//4. select操作

//4.1 查询表有多少条记录
@Test
public void select1(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");

//创建jdbcRTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//调用jdbcTemplate对象里面的方法实现操作
//创建sql语句
String sql = "SELECT count(*) from users";

//调用jdbcTemplate的方法
int count = jdbcTemplate.queryForObject(sql, Integer.class);

System.out.println(count);
}

//4.2 查询对象
@Test
public void testObject(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");

//创建jdbcRTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//调用jdbcTemplate对象里面的方法实现操作
//创建sql语句
String sql = "SELECT * from users WHERE id=?";

//调用jdbcTemplate的方法
//第二个参数是接口RowMapper,需要自己写类实现接口,自己做数据封装
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), 100);

System.out.println(user);
}


//4.3 返回List
@Test
public void testList(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("admin");

//创建jdbcRTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//调用jdbcTemplate对象里面的方法实现操作
//创建sql语句
String sql = "SELECT * from users ";

//调用jdbcTemplate的方法
//第二个参数是接口RowMapper,需要自己写类实现接口,自己做数据封装
List<User> list = jdbcTemplate.query(sql, new MyRowMapper());

System.out.println(list);
}
}

class MyRowMapper implements RowMapper<User> {

public User mapRow(ResultSet rs, int num) throws SQLException{
//1.从结果集里面把数据得到
String username = rs.getString("username");
String passwd = rs.getString("passwd");
int id = rs.getInt("id");
String email = rs.getString("email");
int grade = rs.getInt("grade");
String tele = rs.getString("tele");

//2.把得到数据封装到对象里面
User user = new User();
user.setUsername(username);
user.setEmail(email);
user.setGrade(grade);
user.setId(id);
user.setPasswd(passwd);
user.setTele(tele);

return
package cn.yyf.jdbc;

/**
* Created by Donald on 2017/2/6.
*/
public class User
private String username;
private Integer id;
private String email;
private Integer grade;
private String tele;
private String passwd;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public Integer getGrade() {
return grade;
}

public void setGrade(Integer grade) {
this.grade = grade;
}

public String getTele() {
return tele;
}

public void setTele(String tele) {
this.tele = tele;
}

public String getPasswd() {
return passwd;
}

public void setPasswd(String passwd) {
this.passwd = passwd;
}

@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", id=" + id +
", email='" + email + '\'' +
", grade=" + grade +
", tele='" + tele + '\'' +
", passwd='" + passwd + '\'' +
'}';
}
}