Spring JDBC
-
Spring 框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
-
步骤:
- 导入依赖jar包
- 创建JdbcTemplate对象,依赖于数据源DataSource
- 调用JdbcTemplate的方法来完成(CRUD)操作
-
update():执行DML语句。增、删、改操作
-
queryForMap():查询结果会被封装为Map集合
key为字段,key_value为它的值,只能封装数据一行数据 -
queryForList():查询结果会被封装为List集合
查询出的每一条记录都会被封装为Map集合,然后添加到List集合中 -
query():查询结果会被封装为JavaBean对象
- 一般用BeanPropertyRowMapper实现类,可以自动完成javaBean的封装,不然就得自己实现,起不到化简的效果
List<Acc> list = template.query(sql, new BeanPropertyRowMapper<Acc>(Acc.class));
-
queryForObjec:将查询结果分装为对象
Long tatle = template.queryForObject(sql, Long.class); System.out.println(tatle);
-
JavaBean对象
class Acc{ // 这里要全部写成封装类,因为数据库中有可能有null值,而基本数据类型不能赋值为null // 所以Int应该改成Integer,这里我没改,因为我的数据中没有null值,但是要注意 private int id; private String name; private int balance; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getBalance() { return balance; } public void setBalance(int balance) { this.balance = balance; } @Override public String toString() { return "Acc{" + "id=" + id + ", name='" + name + '\'' + ", balance=" + balance + '}'; } }
-
-
代码示例
// 1.导入jar包
// 1.1创建数据流
Properties pro = new Properties();
DataSource ds = null;
try {
pro.load(JdbcTemplateDemo2.class.getClassLoader().getResourceAsStream("druid.properties"));
// 阿里数据库连接池,createDataSource()是一个静态方法,参数是配置文件
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
// 2.创建JDBCTemplate对象
JdbcTemplate template = new JdbcTemplate(ds);
// 定义sql语句
String sql = "update account set balance = 5000 where id=?";
// 调用执行方法,参数的顺序对应?的位置
int count = template.update(sql, 4);
// 处理结果
System.out.println(count);
// 释放资源等一系列操作,它自己就能完成
}
Template依赖于Datasource,这里用的是Druid数据连接池,其他的连接池也可以,事先导入了连接池的jar包,还有JDBC的jar包。