Spring开发框架除了提供有整个一系列第三方开发框架的功能之外,也提供有自己的一套完整的处理架构.它可以自己处理业务层,自己处理控制层,自己处理数据层,等等等一些列的处理.
JdbcTemplate的产生动机?
首先任何情况下,爱java里面只要是进行数据库的开发操作,那么永恒的都只会有一个技术---JDBC,而所有的开发框架都是针对于JDBC的包装,像Hibernate是对JDBC的的重度包装,包装的结果是用户几乎感觉不到任何数据库操作的身影.就连那些复杂的SQL查询,Hibernate都变为了HQL,其目的就是告诉用户--你不需要知道JDBC的存在.
而MyBatis/IBatis就属于中度包装,而现在要学习的JDBC操作模板就属于轻度的包装.
传统JDBC开发 | 使用Spring模板开发 | |
开发步骤 | 1.进行数据库程序驱动的加载 2.取得数据的连接对象 3.声明要操作的SQL语句(需要使用预处理) 4.创建数据库操作对象 5.执行SQL语句 6.处理返回的操作结果(ResultSet) 7.关闭结果集对象; 8.关闭数据库的操作对象(Statement) 9.如果进行的是更新则应该进行事务提交或回滚; 10.关闭数据库连接 |
3.声明要操作的SQL语句(需要使用预处理)
5.执行SQL语句 6.处理返回的操作结果(ResultSet)
|
优点 | 1.具备固定的操作流程,代码结构简单; 2.JDBC是一个Java的公共服务,属于标准; 3.由于没有涉及到过于复杂对象操作,所以性能上是最高的; | 1.代码简单,但是又不脱离JDBC形式 2. 由于由Spring AOP的支持,用户只关系核心; 3.对于出现的程序异常可以采用统一的方式进行处理 4.与JDBC的操作步骤或形式几乎雷同; |
缺点 | 1.代码的冗余度太高,每次都需要编写大量的重复操作 2.用需要自己手工进行事务的处理操作 3.所有的操作必须按照既定的步骤执行; 4.如果出现了异常,则需要用户自己处理 | 1.与重度包装的Hibernate框架不同,不够智能化; 2.处理返回结果的时候不能够自动转换为VO类,需要由用户自己手工处理结果, |
综合来讲,Spring中的JdbcTemplate成为了JDBC与Hibernate之间的过度操作,也就是说你现在不希望使用那么庞大的Hibernate或者不希望使用最为繁琐的JDBC,就选择JdbcTemplate进行操作
,JdbcTemplate由于不涉及到复杂操作,所以与JDBC相比,性能几乎相当.