JDBC Template

Author: 江南白衣

当报表查询必须使用SQL时,大家有三种选择:

第一、使用Hibernate 的sql 查询函数将查询结果对象转为对象。

第二、使用Hibernate session的getConnection 获得JDBC Connection,然后进行纯JDBC API操作;

第三、选择把JDBC Template作为一种很不错的JDBC Utils来使用。

JDBCTemplate的使用很简单,只要在ApplicationContext文件里定义一个jdbcTemplate节点,POJO获得注入后可以直接执行操作,不需要继承什么基类,具体例子见销售报表查询类SaleReportManager:

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
 SqlRowSet rs = jdbcTemplate.queryForRowSet(sql, params);

Tips1: jdbcTemplate有很多的ORM化回调操作将返回结果转为对象列表,但很多时候还是需要返回ResultSet,Spring有提供一个类似ResultSet的,实现JDBC3.0 RowSet接口的 Spring SqlRowSet。

Tips2:.注意jdbcTemplate尽量只执行查询操作,莫要进行更新,否则会破坏Hibernate的二级缓存体系。