学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO


一、Spring 对持久层技术的支持 Spring DAO 1、模板类:
学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO
文章图片


2、基类:
学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO
文章图片





二、spring JDBC 【JDBCTemplate 模板类】 1、案例:使用jdbc 完成crud操作
(1)依赖:

  • mysql-connector-java.jar 【还可以使用德鲁伊连接池:druid.jar】
  • spring-jdbc.jar
  • spring-tx.jar

(2)总结JdbcTemplate模板类-处理CRUD 操作:
//DML操作: public update(String sql, Object...args) 参数:sql?占位符对应的参数 返回:受影响的行数//DQL 操作: public List query(String sql, Object...args, RowMapper rowMapper) 参数:sql?占位符对应的参数结果集处理器 返回:多行结果集封装的list




(3)[代码重构,抽取重复的代码] 持久层JdbcTemplate的基类JDBCDaoSuppoet: 学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO
文章图片

【学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO】学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO
文章图片




2、总结模板类JdbcTemplate的问题:
(1)在模板类JdbcTemplate中使用的占位符 ?【顺序占位符】,需要数第几个,然后写对应的参数,参数多了麻烦 (2)面对集合查询 in查询时(不确定参数个数), select * from employee where id in .....
  • in 后边不知道该怎么写,是应该写一个?还是(多少个?,都是不确定的)
? 解决:使用NameParameterJdbcTemplate 命名的参数JdbcTemplate模板,其实就是在JdbcTemplate外面套一层。
  • 允许使用 xx 来给占位参数起名称,我们需要给名称xx的位置设置参数。
□ 举例:
public int countOfActorsByFirstName(String firstName) { String sql = "select count(*) from T_ACTOR where first_name = :first_name"; Map namedParameters = Collections.singletonMap("first_name", firstName); return this.namedParameterJdbcTemplate.queryForObject(sql, namedParameters,Integer.class); }





三、Spring ORM --- 集成mybatis框架

    推荐阅读