文章目录
JdbcTemplate作用
他是MVC中封装数据库那一部分组件,也是一个工具,这里暂时只记录把数据源交给他管理的情况
简单的一个入门了解
用JdbcTemplate一般就三个步骤
-
导入包
-
创建连接池
-
创建JdbcTemplate,并把连接池交给JdbcTemplate
然后使用JdbcTemplate
为jdbcTemplate对象设置完数据源之后,就可以使用它的update方法来调用增删改的sql语句,当然,这里的连接是由jdbcTemplate在数据源里面取的
记录一下中间遇到的错误
- 导入的mysql驱动jar版本包需要和自己安装的mysql版本差不多一致,不然可能会报错
- 某些时候,在我们设置jdbcurl的时候,需要后面跟上时区:
serverTimezone=UTC
,注意这算是参数,需要和路径之间用?
隔开
通过配置Bean的方式来使用JdbcTemplate
- 在Bean中配置连接池对象
- 在Bean中配置JdbcTemplate
- 在方法中得到JdbcTemplate并使用
为了解耦合,我们需要把配置连接池的参数用键值对的方式放在一个文件中,然后用下面的EL表达式去取
Update方法的使用
因为增删改都不需要有返回值,则可以都使用JdbcTemplate的update方法来使用sql语句
如下:改删操作:这里是直接测试JdbcTemplate的update方法,所以我们可以直接在这里设置JdbcTemplate对象类型的属性
查询
对于查询操作,在我们普通的web中,我们需要把查询到的结果自行封装到实体中,比较麻烦,在MVC中,可以由MVC帮我们把查询到的结果封装到实体中
多结果查询
当我们查询的结果可能不止一条
我就需要使用jdbcTemplate对象的query方法
他有两个参数,第一个是sql语句。第二个是RowMapper接口,在此,我们要传入此接口的实现类的实例
此处,我们传入的实例是这个类的第一个
小技巧,在接口上,我们可以按住Ctrl+alt+b来查看接口的实现类
这里,这个实例需要传入泛型,泛型的类型,即是我们需要封装的实体类的类型,然后他还需要传入一个形参,形参是对应实体的类
这个返回值是一个对应实体的List集合
单结果查询
单结果返回值不是集合,这里可以使用别的方法
使用JdbcTemplate的queryForObject这个方法:他有三个参数
第一个是sql语句,第二个是BeanPropertyRowMapper<泛型>(泛型的类)
,和多结果查询那里一样,第三个是sql语句中的参数(单结果查询一般都需要参数)
这个返回值只有一个
聚合查询(结果为数字的那种简单的类)
这是使用的方法名也是:queryForObject
但是参数不太一样
1:这里不需要sql中的语句参数
2:这里不需要封装实体,直接第二个参数放入系统提供的类的字节码
小结:
步骤: