JdbcTemplate 查询方法

使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法

 

1   jdbcTemplate.queryForInt() jdbcTemplate.queryForLong()

 

例如下面使用queryForInt()方法传回user表中的记录数:

 

jdbcTemplate.queryForInt("SELECT COUNT(*) FROM user");

 

 

2 jdbcTemplate.queryForObject()

 

本质上和queryForInt(),相同。返回都是单行单列一个数据。例如下例传回一个String对象:

 

String name = (String) jdbcTemplate.queryForObject(

"SELECT name FROM USER WHERE id = ?",

new Object[] {id},

java.lang.String.class);

 

 

 

 

 

3 jdbcTemplate.queryForList(???)

 

返回 a List of Maps, using column name as key. 每一个map代表一条记录例如:

List rows = jdbcTemplate.queryForList("SELECT * FROM user");

 

 

for(int i=0;i

 

Map userMap=rows.get(i);

 

System.out.println(userMap.get("id"));

System.out.println(userMap.get("name"));

System.out.println(userMap.get("age"));

 

}

 

 

4 jdbcTemplate.queryForMap(???)

 

queryForList(), 差不多,只是预期查询一行数据。返回 a Map, using column name as key.

 

The query is expected to be a single row query

 

 

 

5 jdbcTemplate.queryForRowSet(???)

 

返回RowSet, representing disconnected java.sql.ResultSet

 

 

 

 

JDBCTemplate的使用很简单,只要在ApplicationContext文件里定义一个jdbcTemplate节点,POJO获得注入后可以直接执行操作,不需要继承什么基类。

 

xml 代码

          

             

  

java 代码

SqlRowSet rs = jdbcTemplate.queryForRowSet(sql, params);  

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

 

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

 

你可能感兴趣的:(Hibernate技术)