学习Spring5必知必会(6)~Spring|学习Spring5必知必会(6)~Spring DAO
一、Spring 对持久层技术的支持 Spring DAO
1、模板类:
文章图片
2、基类:
文章图片
二、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】
文章图片
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框架
推荐阅读
- 神经网络学习小记录|神经网络学习小记录62——Tensorflow2 利用efficientnet系列模型搭建yolov3目标检测平台
- 学习|软件测试入门到高级,5k-50k,你属于哪个阶段()
- python|python学习笔记——day05
- Python学习|Python学习笔记
- python|python学习笔记(十二)常用内建模块
- 算法|我工作第五年的学习与读书之法
- 机器人教育|在学习少儿编程中体会AI乐趣
- ui|广工工作室各方向学习指南
- Python机器学习应用之基于决策树算法的分类预测篇
- Java学习|JDBC入门一 驱动下载和第一个简单的jdbc程序