夜一
为什么需要JdbcTemplate:
使用jdbc时,每次都需要自己获取Preparedstatement,输入sql语句参数,关闭连接等操作。造成操作冗余。影响我们打代码的效率。有了JDBCTemplate以后就可以只写SQL语句就可以了。
什么是JdbcTemplate:
JdbcTemplate是Spring的一部分,是对数据库的操作在jdbc的封装,处理了资源的建立和释放(不需要我们管理连接了),我们只需要提供SQL语句(不需要我们设置参数了)和提取结果(查询时候可以直接返回对应的实体类),使JDBC更加易于使用。
JdbcTemplate使用spring的注入功能,把datasource注册到JdbcTemplate之中。
Spring源码地址:https://github.com/spring-projects/spring-framework
使用步骤:
1.导包
spring的四个包
2.创建jdbctemplate对象。
这里有用到Druid连接池,所以需要导Druid的包
druid一个包
JdbcTemplate jdbcTemplate = new JdbcTemplate(JdbcUtils.getDataSource());
参数说明:
使用了spring的注入功能
JdbcUtils是自己定义的JdbcUtils,详细请看前面的文章中的自定义连接池
getDataSource()是JdbcUtils里面的一个方法用来获得数据源
一般使用语句:
- execute:没有返回值,可以执行所有SQL语句,一般用于执行DDL语句。
- update:返回的是一个int值,影响的行数, 用于执行INSERT、UPDATE、DELETE等DML语句。增删改都只是使用到了一个方法: update(sql,Object…args)
- queryXxx:用于DQL数据查询语句。
queryXxx:
方法名 | 作用 |
---|---|
queryForObject(sql,数据类型.class) | 查询单个对象 |
queryForMap(sql,参数) | 查询单个对象,返回一个Map对象 |
queryForObject(sql,new BeanPropertyRowMAPPer(类型),参数) | 查询单个对象,返回单个实体类对象 |
queryForList(sql,参数) | 查询多个对象,返回一个List对象,List对象存储是Map对象 |
query(sql,new BeanPropertyRowMapper(),参数 ) | 查询多个对象,返回的是一个List对象,List对象存储是实体类 |