Spring的jdbcTemplate使用queryForXXX的使用
2014-12-23 13:37
351 查看
使用jdbcTemplate查询数据的时候可以使用queryForXXX等方法。下面我们就一一解析一下: 1、jdbcTemplate.queryForInt()和jdbcTemplate.queryForLong() --使用queryForInt返回user表中的记录数量,queryForInt搭配这样的sql可以在分页的时候计算总记录数 jdbcTemplate.queryForInt("select count(*) from user"); 2、jdbcTemplate.queryForObject() --本质上和queryForInt相同,只是可以返回不同的对象,例如返回一个String对象 String name = (String) jdbcTemplate.queryForObject( --3个参数,1、sql 2、要传递的参数数组 3、返回来的对象class "SELECT name FROM USER WHERE id = ?", new Object[] {id}, java.lang.String.class); 3、jdbcTemplate.queryForList(???) --返回一个装有map的list,每一个map是一条记录,map里面的key是字段名 List rows = jdbcTemplate.queryForList("SELECT * FROM user"); --得到装有map的list 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(SQL) --这个查询只能是查询一条记录的查询,返回一个map,key的值是column的值 Map map = jdbcTemplate.queryForMap("select count(*) as keyval from user"); map.get("keyval") 5、jdbcTemplate.queryForRowSet(SQL) --查询一批数据,返回为SqlRowSet,类似于ResultSet,但不再绑定到连接上,离线结果集 6、jdbc1.query(sql, new RowCallbackHandler() --返回一个ResultSet对象, processRow有自动循环的机制,它会自动执行processRow中的语句直到 --rs的size执行完了为止。我们可以在这其中用list完成对象的转移,只不过list要用final来修饰 jdbc1.query(sql, new RowCallbackHandler() { //editing public void processRow(ResultSet rs) throws SQLException { VideoSearch vs = new VideoSearch(); vs.setRECORDINGFILENAME(rs.getString("RECORDINGFILENAME")); vs.setCALLID(rs.getString("CALLID")); list.add(vs); } } 说明: JDBCTemplate的使用方法: 在ApplicationContext.xml中定义一个jdbcTemplate的节点,使用POJO注入,获得注入后可以执行操作 不需要继承什么基类 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> SqlRowSet rs = jdbcTemplate.queryForRowSet(sql, params); jdbcTemplate有很多的ORM化回调操作将返回结果转为对象列表, 但很多时候还是需要返回ResultSet,Spring有提供一个类似ResultSet的,实现JDBC3.0 RowSet接口的Spring SqlRowSet 注意 jdbcTemplate尽量只执行查询操作,莫要进行更新,否则会破坏Hibernate的二级缓存体系
相关文章推荐
- Spring中使用JdbcTemplate的queryForObject方法,当查不到数据时会抛出如下异常:
- 在使用Spring中jdbcTemplate的QueryForObject()方法时异常:EmptyResultDataAccessException
- 【Spring】queryForXXX()方法使用的一些细节问题
- Spring中使用JdbcTemplate的queryForObject方法,当查不到数据时会抛出如下异常:
- Spring中的jdbcTemplate.queryForObject()使用
- 关于mysql 数据库使用spring 2.0低版本 JdbcTemplate.queryForList 查询结果别名不起作用的解决方法
- Spring中JDBCTemplate使用queryForObject方法时 ”Incorrect column count: expected 1, actual 5“错误
- spring jdbcTemplate queryForList 预编译 order by ?失效 带来的思考以及查阅资料 获取到的知识
- spring使用JdbcDaoSupport中封装的JdbcTemplate进行query
- 关于在使用spring出现类似java.sql.SQLException: Access denied for user 'XXX'@'localhost' (using password: YES)
- 对于JdbcTemplate#queryForObject()的使用
- 关于Spring jdbcTemplate.queryForList(sql)结果迭代
- Spring jdbcTemplate.queryForInt(sql)的奇怪问题,呵呵
- spring 4.2.0后jdbcTemplate中不用queryForLong了(之系统升级发现)
- 使用JdbcTemplate.queryForObject 的注意点
- spring jdbcTemplate 使用占位符(?)的query方法进行多表查询
- 调用 jdbcTemplate.queryForList 时出现错误 spring-org.springframework.jdbc.IncorrectResultSetColumnCountException
- spring 3.2.2后 jdbcTemplate.queryForInt()方法过时的处理办法
- jdbcTemplate.queryForObject使用相关问题
- 使用Spring Cloud微服务框架进行多个微服务整合时出现No converter found for return value of type:xxx异常信息