一、Spring对不同的持久化支持:

Spring为各种支持的持久化技术,都提供了简单操作的模板和回调

ORM持久化技术 模板类
JDBC org.springframework.jdbc.core.JdbcTemplate
Hibernate org.springframework.orm.hibernate5.HibernateTemplate
IBatis(MyBatis) org.springframework.orm.ibatis.SqlMapClientTemplate
JPA org.springfrmaework.orm.jpa.JpaTemplate

其实Spring的JDBCTemplate有点像DBUtils,但是有时候还没有DBUitls好用。

这里来学习一下使用Spring的JDBCTemplate来玩一下CRUD。

当然Spring还支持其他的持久化技术,如阿里数据库连接池druid等

二、使用JdbcTemplate需要的jar包

在这里使用Spring的JDBCTemplate的时候先要把jar包拿过来:

三、建立数据库的连接属性文件(db.properties)

  根据具体的数据库名、username、password进行修改。



四、applicationContext.xml 配置

     4.1  加入属性文件的读取

     4.2  建立C3P0数据源

     4.3  建立JDBCTemplate对象



这里使用c3p0数据库连接池

五、使用jdbcTemplate测试

JdbcTemplate主要提供以下五类方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
  • update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
  • query方法及queryForXXX方法:用于执行查询相关语句;
  • call方法:用于执行存储过程、函数相关语句。

JdbcTemplate类支持的回调类:

  • 预编译语句及存储过程创建回调:用于根据JdbcTemplate提供的连接创建相应的语句;

PreparedStatementCreator:通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的PreparedStatement;

CallableStatementCreator:通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的CallableStatement;

  • 预编译语句设值回调:用于给预编译语句相应参数设值;

PreparedStatementSetter:通过回调获取JdbcTemplate提供的PreparedStatement,由用户来对相应的预编译语句相应参数设值;

BatchPreparedStatementSetter:;类似于PreparedStatementSetter,但用于批处理,需要指定批处理大小;

  • 自定义功能回调:提供给用户一个扩展点,用户可以在指定类型的扩展点执行任何数量需要的操作;

ConnectionCallback:通过回调获取JdbcTemplate提供的Connection,用户可在该Connection执行任何数量的操作;

StatementCallback:通过回调获取JdbcTemplate提供的Statement,用户可以在该Statement执行任何数量的操作;

PreparedStatementCallback:通过回调获取JdbcTemplate提供的PreparedStatement,用户可以在该PreparedStatement执行任何数量的操作;

CallableStatementCallback:通过回调获取JdbcTemplate提供的CallableStatement,用户可以在该CallableStatement执行任何数量的操作;

  • 结果集处理回调:通过回调处理ResultSet或将ResultSet转换为需要的形式;

RowMapper:用于将结果集每行数据转换为需要的类型,用户需实现方法mapRow(ResultSet rs, int rowNum)来完成将每行数据转换为相应的类型。

RowCallbackHandler:用于处理ResultSet的每一行结果,用户需实现方法processRow(ResultSet rs)来完成处理,在该回调方法中无需执行rs.next(),该操作由JdbcTemplate来执行,用户只需按行获取数据然后处理即可。

ResultSetExtractor:用于结果集数据提取,用户需实现方法extractData(ResultSet rs)来处理结果集,用户必须处理整个结果集

5.1 编写UserDAO(insert方法)

5.2 编写测试方法add( )

这里只进行简单的测试,其他的JdbcTemplate五类方法 读者可以自行学习并校验。


本文章由mike zhong编写,仅供初学者学习。


在写完Spring+MyBatis+Spring MVC等文章后、我整理了一套【完整实战文档】,有需要的点击下载

最新文章

  1. WCF x509证书安装问题汇总
  2. C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结
  3. POJ 2893 M × N Puzzle(树状数组求逆序对)
  4. MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的!
  5. dedecms 知识点总结
  6. QT参考录
  7. Container With Most Water 解答
  8. [WebGL入门]十六,绘制多个模型
  9. sqlQuery.list()方法返回类型
  10. CodeForces 696A Lorenzo Von Matterhorn (LCA + map)
  11. (译)AngularJS1.3.0 开发者指南(四) -- 控制器
  12. python脚本 随机定位坐标
  13. HashMap HashTable和ConcurrentHashMap的区别
  14. Zephyr的Logging
  15. MyBatis 与 Hibernate 到底哪个更快?
  16. JS中的计时器事件
  17. BZOJ 1208 宠物收养所 set+二分
  18. [日常] go语言圣经-获取URL练习题
  19. c语言中函数的形参test(int *&a)?
  20. 【转载】利用一个堆溢出漏洞实现 VMware 虚拟机逃逸

热门文章

  1. AndroidStudio报错:Could not download gradle.jar:No cacahed version available for offline mode
  2. 批量unzip一大堆压缩文件进行文件查询的办法.
  3. 得心应用的Vue高级技巧---vue中文社区
  4. (二)LoadRunner目录分析
  5. MySQL Execute Plan--Index Merge特性
  6. jquery.datetimepicker中报错Cannot read property 'top' of undefined
  7. 【spring boot】SpringBoot初学(7)– 多数据源及其事务
  8. send and recieve message with myself (python socket )
  9. 安装APACHE到CentOS(YUM)
  10. C#读取excel时提示“外部数据库驱动程序 (1) 中的意外错误”