JdbcTemplate进行查询

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<rows.size();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 代码

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="dataSource"/>

</bean>

java 代码

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

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

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

时间: 2024-10-11 00:23:44

JdbcTemplate进行查询的相关文章

spring-使用JdbcTemplate完成查询所有记录-ResultSetExtractor

一.创建spring项目    项目名称:spring101306二.在项目上添加jar包    1.在项目中创建lib目录        /lib    2.在lib目录下添加spring支持        commons-logging.jar        junit-4.10.jar        log4j.jar        mysql-connector-java-5.1.18-bin.jar        spring-beans-3.2.0.RELEASE.jar      

spring-使用JdbcTemplate完成查询所有记录-RowMapper

一.创建spring项目    项目名称:spring101306二.在项目上添加jar包    1.在项目中创建lib目录        /lib    2.在lib目录下添加spring支持        commons-logging.jar        junit-4.10.jar        log4j.jar        mysql-connector-java-5.1.18-bin.jar        spring-beans-3.2.0.RELEASE.jar      

jdbcTemplate 泛型 查询

1. dao层方法使用泛型 public <T> List<T> findDistinctListByCondition(String str, Class<T> fieldClass) { String sql = "select distinct " + str + " from checkin_request"; List<T> list = (List<T>) jdbcTemplate.query(

Springboot使用JdbcTemplate RowMapper查询,直接返回实体列表

ManagerRowMapper.java public class ManagerRowMapper implements RowMapper<Manager>{ @Override public Manager mapRow(ResultSet rs, int i) throws SQLException { Manager m = new Manager(); m.setId(rs.getInt("ID")); m.setName(rs.getString("

【Spring】利用spring的JdbcTemplate查询返回结果映射到自定义类型

// org.springframework.jdbc.core.JdbcTemplate 中的查询方法基本都有支持参数RowMapper<T> rowMapper的重载方法.下面只是随便举例2个,还有很多 public <T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException { ... }; public <T>

jdbcTemplate查询

//       简单sql String sql = " select w.id,w.title,w.menucode,w.pid,w.pname,w.createdate,w.content,w.status,w.imagename " + " from mss_worknewcontent w " + " where 1=1 and w.status = 1 and w.menucode = 'fengguang' and w.pid = '&quo

JdbcTemplate查询数据 三种callback之间的区别

JdbcTemplate针对数据查询提供了多个重载的模板方法,你可以根据需要选用不同的模板方法. 如果你的查询很简单,仅仅是传入相应SQL或者相关参数,然后取得一个单一的结果,那么你可以选择如下一组便利的模板方法: int queryForInt(String sql) int queryForInt(String sql, Object[] args) long queryForLong(String sql) long queryForLong(String sql, Object[] ar

java中使用jdbcTemplate的query方法举例与总结

在java中使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法 1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong() //查询数据记录的条数,返回一个int(数据范围较小)或者一个Long(数据范围较大)类型 String todayCountTopicsSql="SELECT count(*) FROM mcp_forum_post"; Integer todayCount=jdbcTemp

spring jdbcTemplate的CRUD操作

一.jdbcTemplate准备 1.导入与jdbcTemplate相关的jar包 2.设置数据库信息 3.创建jdbcTemplate对象,设置数据源 二.添加操作 1.代码 2.结果 三.修改操作 1.代码 2.结果 四.删除操作 1.代码 2.结果 五.查询操作 jdbcTemplate实现查询,需提供RowMapper的实现类,为了得到不同的类型数据. 1.查询对象 (1)查询代码 (2)MyRowMapper类 重写mapRow方法对user对象数据封装 (3)结果 2.查询list集