7.3 持久化操作
- 增删改
JdbcTemplate.update(String, Object...)
- 批量增删改
JdbcTemplate.batchUpdate(String, List<Object[]>)
Object[]封装了SQL语句每一次执行时所需要的参数
List集合封装了SQL语句多次执行时的所有参数
- 查询单行
JdbcTemplate.queryForObject(String, RowMapper<Department>, Object...)
- 查询多行
JdbcTemplate.query(String, RowMapper<Department>, Object...)
RowMapper对象依然可以使用BeanPropertyRowMapper
- 查询单一值
JdbcTemplate.queryForObject(String, Class, Object...)
7.4 使用具名参数的JdbcTemplate
- 关于具名参数
在Hibernate的HQL查询中我们体验过具名参数的使用,相对于基于位置的参数,具名参数具有更好的可维护性,在SQL语句中参数较多时可以考虑使用具名参数。
在Spring中可以通过NamedParameterJdbcTemplate类的对象使用带有具名参数的SQL语句。
- 通过IOC容器创建NamedParameterJdbcTemplate对象
<!-- 配置可以使用具名参数的JDBCTemplate类对象 --> <bean id="namedTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <!-- 没有无参构造器,必须传入数据源或JdbcTemplate对象 --> <constructor-arg ref="dataSource"/> </bean> |
- 具名参数在SQL语句中的格式
INSERT INTO depts (dept_name) VALUES (:deptName) |
- 具名参数传入
①通过Map对象传入
NamedParameterJdbcTemplate.update(String sql, Map<String, ?> map)
Map的键是参数名,值是参数值
② 通过SqlParameterSource对象传入
String sql = "INSERT INTO depts (dept_name) VALUES (:deptName)"; Department department = new Department(null, "YYY", null); SqlParameterSource sqlParameterSource = new BeanPropertySqlParameterSource(department); namedTemplate.update(sql, sqlParameterSource); |
本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。