黑马程序员技术交流社区

标题: 【成都*文章*】jdbcTemplate使用 [打印本页]

作者: 小蜀哥哥    时间: 2019-11-29 19:56
标题: 【成都*文章*】jdbcTemplate使用
1.JdbcTemplate简介

Spring提供的一个操作数据库的技术JdbcTemplate,是对Jdbc的封装。语法风格非常接近DBUtils。
JdbcTemplate可以直接操作数据库,加快效率,而且学这个JdbcTemplate也是为声明式事务做准备,毕竟要对数据库中的数据进行操纵!
JdbcTemplate中并没有提供一级缓存,以及类与类之间的关联关系!就像是spring提供的一个DBUtils。
Spring对数据库的操作使用JdbcTemplate来封装JDBC,结合Spring的注入特性可以很方便的实现对数据库的访问操作。使用JdbcTemplate可以像JDBC一样来编写数据库的操作代码

2.为啥要使用Jdbc_template进行开发呢?

Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。
Spring提供的JdbcTemplate对jdbc做了封装,大大简化了数据库的操作。找到Spring JdbcTemplate源码,可以看到如下方法:

Connection con = DataSourceUtils.getConnection(getDataSource());

如果直接使用JDBC的话,需要我们加载数据库驱动、创建连接、释放连接、异常处理等一系列的动作;繁琐且代码看起来不直观。
此外,Spring提供的JdbcTempate能直接数据对象映射成实体类,不再需要获取ResultSet去获取值/赋值等操作,提高开发效率;
如下:return (User) jdbcTemplate.queryForObject("select * from tb_test1 where id = 100", User.class)

3.配置环境

①导入jar包

②在IOC容器中配置数据源

其中jdbc.properties文件内容:
jdbc.user=root
jdbc.passowrd=123456
jdbc.url=jdbc:mysql://localhost:3306/student
jdbc.driver=com.mysql.jdbc.Driver

③在IOC容器中配置JdbcTemplate对象的bean,并将数据源对象装配到JdbcTemplate对象中.

4.实验:

实验1:测试数据源

实验2:将sid=21020的记录的salary字段更新为1300【更新操作】

从上述实验中就可以看到,该操作不用我们自己再去获取数据库连接信息了,而是直接传递sql语句及其参数!

实验3:批量插入

实验4:查询emp_id=5的数据库记录,封装为一个Java对象返回
分析:封装为一个对象返回的话,首先我们需要有一个与数据表对应的实体类!

实验5:查询salary>4000的数据库记录,封装为List集合返回

从上面可以看出,查询结果是一个实体还是一个list列表是靠template对象的不同方法实现的!

实验6:查询最大salary

实验7:使用带有具名参数的SQL语句插入一条员工记录,并以Map形式传入参数值
具名参数:是指基于名称的,前面我们使用的都是用?作为占位符,然后是使用基于位置的!
如果要使用具名参数的sql语句就必须在spring配置文件中配置NamedParameterJdbcTemplat这个模板类,而不能使用
原来的JdbcTemplate,因为JdbcTemplate不能完成这样的任务!

实验8:重复实验7,以SqlParameterSource形式传入参数值

实验9:创建JdbcTemplateDao,自动装配JdbcTemplate对象
1.创建dao类:

2.配置spring的配置文件

3.测试该dao











欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2