使用SQL语句查询,可以有三种选择。
一、使用hibernate 的sql查询函数将查询结果对象转为对象使用。
二、使用hibernate session的getConnection 获得JDBC Connection,然后进行纯JDBC API操作。
三、选择把JDBC Template作为一种很不错的JDBC Utils来使用。
JDBCTemplate的使用很简单,只要在ApplicationContext文件里定义一个jdbcTemplate节点,POJO获得注入后可以直接执行操作,不需要继承什么几类,具体例子见下面。
SqlRowSet rs = jdbcTemplate.queryForRowSet(sql,params);
1> jdbcTemplate 有很多的ORM化回调操作将返回结果转为对象列表,但很多时候还是需要返回ResultSet,Sping有提供一个类似ResultSet的,实现JDBC3.0 RowSet接口的Spring SqlRowSet
2> 注意jdbcTemplate尽量只执行查询操作,莫要进行更新,否则会破坏Hibernate的二级缓存体系
一、使用hibernate 的sql查询函数将查询结果对象转为对象使用。
二、使用hibernate session的getConnection 获得JDBC Connection,然后进行纯JDBC API操作。
三、选择把JDBC Template作为一种很不错的JDBC Utils来使用。
JDBCTemplate的使用很简单,只要在ApplicationContext文件里定义一个jdbcTemplate节点,POJO获得注入后可以直接执行操作,不需要继承什么几类,具体例子见下面。
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
SqlRowSet rs = jdbcTemplate.queryForRowSet(sql,params);
1> jdbcTemplate 有很多的ORM化回调操作将返回结果转为对象列表,但很多时候还是需要返回ResultSet,Sping有提供一个类似ResultSet的,实现JDBC3.0 RowSet接口的Spring SqlRowSet
2> 注意jdbcTemplate尽量只执行查询操作,莫要进行更新,否则会破坏Hibernate的二级缓存体系