Spring的jdbcTemplate使用

原创 2012年03月22日 14:53:23
使用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(???)
--返回一个RowSet   然后调用.getString或者getInt等去取值




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的二级缓存体系
 




java中RowSet用法

疯狂讲义P624 与ResultSet相比,RowSet默认是可滚动的,可更新的,可序列化的结果集。而且作为javaBean使用。因此能方便的在网络上传输。用于同步两端的数据。对于离线RowSet而言...

JDBC:ResultSet和RowSet

ResulSet类型和选项 Connection提供了三种不同的方法来创建Statement: createStatement()  createStatement(int resultSe...

JdbcTemplate的queryForMap方法报错

JdbcTemplate的queryForMap方法报错  queryForMap方法使用不当,就会出错,使用方式如下:  The queryForMap method in JdbcTemp...

Spring JdbcTemplate方法详解

JdbcTemplate主要提供以下五类方法:execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;update方法及batchUpdate方法:update方法用于执行新增、修改、...

spring 中JdbcTemplate的queryForObject、queryForMap为空返回错误情况的一个处理

spring 中JdbcTemplate的queryForObject、queryForMap为空返回错误情况的一个处理

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

在java中使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法 1、jdbcTemplate.queryForInt() 和 jdbcTemplate.queryFor...

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

在Java中使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法 1、jdbcTemplate.queryForInt() 和 jdbcTemplate.queryF...

JDBCTemplate---方法介绍和简单示例

当sql等查询方式不能满足性能或灵活性的要求,必须使用SQL时,大家有三种选择: 第一、使用Hibernate 的sql 查询函数,将查询结果对象转为Entity对象。 第二、使用Hibernat...

JdbcTemplate的queryForMap方法报错

转自   http://blog.csdn.net/z69183787/article/details/8573802 JdbcTemplate的queryForMap方法报错  ...

jdbcTemplate的queryForList

jdbcTemplate的queryForList的使用方法如下,它不一样的地方是,它获得的结果,会再放到一个map里去:List rows = jdbcTemplate.queryForList("...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring的jdbcTemplate使用
举报原因:
原因补充:

(最多只允许输入30个字)