JdbcTemplate

JdbcTemplate



1. 基本简介

  JdbcTemplate是位于 org.springframework.jdbc.core 包中的类,依赖于 spring-jdbc ,是 Spring 框架对 JDBC 的简单封装,可以提供一个 JdbcTemplate 对象简化 JDBC 的相关操作。还需要注意的是,在创建 JdbcTemplate 对象时需要传入一个 DataSource 对象。

JdbcTemplate 的 API文档

JdbcTemplate 的作用:

  • 简化了 JDBC 的使用,有助于避免常见错误。
  • 它已经完成核心的JDBC工作流程,只需要我们提供 SQL 语句就可以给出结果。
  • 执行SQL查询或更新时,可以捕获JDBC异常,并将其转换为org.springframework.dao程序包中定义的更大的异常层次结构 。


2. 部分成员方法及描述

  成员方法在API文档中都有详细的介绍,这里简单介绍几个查询相关的方法。

方法名描述
update()发出单个SQL更新操作,执行DML语句,增、删、改操作
query()使用准备好的语句进行查询
queryForList()给定静态SQL,对结果列表执行查询。
queryForMap()给定静态SQL,对结果图执行查询。
queryForObject()给定静态SQL,对结果对象执行查询。

3. 应用代码片段展示

// 使用这些方法之前要创建JdbcTemplate对象
JdbcTemplate jt = new JdbcTemplate(JDBCUtils.getDataSource());

// 1. 向表中添加一条记录
String sql = "insert into emp(ename,dept_id) values(?,?)";
jt.update(sql,"刘备","10");

// 2. 删除表中一条记录
String sql = "delete from emp where id = 1015";
jt.update(sql);

// 3. 修改表中指定列的值
String sql = "update emp set salary = 10000 where id =1001";
jt.update(sql);


// 4. 查询id为1001的记录,将其封装为Map集合.
// 查询结果会将列封装为key,将值封装为value,且只能封装一条记录。
String sql = "select * from emp where id = ?";
Map<String,Object> map = jt.queryForMap(sql,1001);
System.out.println(map);

// 5. 查询表所有记录,将其封装为list集合
// 先将每条记录封装为一个Map集合,再讲Map集合装载到List集合
String sql = "select * from emp";
List<Map<String,Object>> list = jt.queryForList(sql);
for (Map<String, Object> map : list) {
    System.out.println(map);

}

// 6. 查询所有记录,将其封装为对象的list集合
// RowMapper,一般我们使用BeanPropertyRowMapper实现类,可以完成数据到JavaBean的自动封装。
String sql = "select * from emp";
List<Emp> list = jt.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class));
for (Emp emp : list) {
    System.out.println(emp);
}

// 7. 查询总记录数。
// queryForObject:一般用于聚合函数的查询
String sql = "select count(id) from emp";
Long total = jt.queryForObject(sql, Long.class);
System.out.println(total);

注意:

  • 以上代码只是应用片段,需要结合具体环境使用。
  • JDBCUtils 是对 Druid 连接池的一个工具抽取类,用于获取 DataSource。实现方式看 C3P0&Drui的2.4.4
  • 由于刚刚初学,对 JdbcTemplate 的认识还不够深刻,相关demo以后再做。推荐大家去看 黑马程序员的讲解


时间:2019年11月1日17:31:30


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值