一、Spring对不同的持久化层技术都进行封装
二、操作
1.导包
2.jdbcTemplateTest1.java
3.结果
其他操作
添加操作
删除操作
查询操作
①
②
③
源代码
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 user;
}
}
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 + '\'' +
'}';
}
}