JdbcTemplate查询

原创 2007年10月15日 15:04:00

使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法,例如使用queryForInt()方法传回user表格中的数据数目: jdbcTemplate.quertForInt("select count(*) from user"); 也可以使用queryForObject()传回一个查询后的对象,例如传回一个String对象:

String name=(String)jdbcTemplate.queryForObject(
             "selcet name from user where id=?",
                         new Object[]{id},
                         java.lang.String.class);
)

 

上面两个例子都是传回单独一笔数据,如果要传回多笔数据,则可以使用queryForList()方法,例如:
List rows=jdbcTemplate().queryForList("select * from user where id="+id.intValue()); 传回的list中包括的是map对象,每个map对象代表查询结果中的一笔数据,每笔数据包括多个字段,要取得字段中的值,就要使用字段名作为key,例如:

   Iterator it=rows.iterator();
   while(it.hasNext()){
       Map result=(Map)it.next();
       System.out.println(userMap.get("id"));
       System.out.println(userMap.get("name"));
       System.out.println(userMap.get("age"));
    }

 

在查询的同时,你可以在返回结果之前先进行一些处理,这就要实现RowCallbackHandler接口

public User find(Integer id){
   final User user=new User();
   jdbcTemplate.query("select * from user where id=?",new Object[]{id},
                                         new RowCallBackHandler(){
                                                public void proccessRow(ResultSet rs){
                                                        user.setId(new Integer(rs.getInt("id")));
                                                        uset.setName(rs.getString("name"));    
                                                 }
                                            });
   return user;
 }

如果一次要返回多个查询结果对象,则可以实现RowMapper接口

public class UserRowMapper implements RowMapper{
       public Object MapRow(ResultSet rsmint rowNum) throws SQLException{
               User user=new User();
               user.setId(new Integer(rs.getInt("id")));
               user.setName(rs.getString("name"));
               return user;
      }
}

使用RowMapper查询单笔数据

public User find(Integer id){
        User user=(User)jdbcTemplate.queryForObject("select * from user where id=?",new Object[]{id},
                                                                                    new UserRowMapper());
         return user;

}

使用RowMapper查询多笔数据

List users=jdbcTemplate.query("select * from user",new UserRowMapper());

传回的users对象中,包括了从数据库查询出来的结果,并已经封装成uer对象

JdbcTemplate query查询方法

JdbcTemplate 中有很多的查询方法,整理几个比较常用的方法。 1、queryFor*方法很好用,简单强大。 2、query查询方法中带有回调接口有三个:ResultSetExtracto...
  • xiaoyangsavvy
  • xiaoyangsavvy
  • 2017年06月29日 17:54
  • 6138

Spring JDBC学习笔记(1):查询数据库数据之JdbcTemplate的使用

今天搬代码的时候遇到一个需求,要获取数据库的表和列的元信息,包括数据类型、约束、索引等的信息,因为之前使用JDBC实现过,但是当前在一个spring管理的工程中,觉得直接用JDBC怪怪的(其实是感觉有...
  • lmy86263
  • lmy86263
  • 2016年03月28日 22:55
  • 2314

使用jdbcTemplate查询的三种回调

用于查询的回调接口定义主要有以下三种:org.springframework.jdbc.core.ResultSetExtractor.  基本上属于JdbcTemplate内部使用的Callback...
  • e5945
  • e5945
  • 2010年11月12日 14:22
  • 12221

使用jdbcTemplate查询返回自定义对象集合

2、在UserInfo.java中添加一个Map转换为UserInfo的方法 public static UserInfo toObject(Map map) { UserInfo user...
  • u011332918
  • u011332918
  • 2015年05月07日 13:56
  • 8638

jdbcTemplate 实现查询返回list

package spring_jdbctemplate; import java.sql.ResultSet; import java.sql.SQLException; import java.u...
  • ustcyy91
  • ustcyy91
  • 2017年06月08日 16:34
  • 2252

Spring-jdbc:JdbcTemplate使用简介

为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架. 作为 SpringJDBC 框架的核心, JDBC 模板的设计目的是为不同类型的...
  • u013468917
  • u013468917
  • 2016年08月16日 11:18
  • 11418

jdbcTemplate

JdbcTemplate简介   Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。   Jdbc...
  • sx_ygl
  • sx_ygl
  • 2017年01月04日 13:33
  • 2585

JdbcTemplate学习笔记(更新插入删除等)

1、使用JdbcTemplate的execute()方法执行SQL语句  Java代码   jdbcTemplate.execute("CREATE TABLE USER (u...
  • haluoluo211
  • haluoluo211
  • 2016年08月23日 10:04
  • 10096

Spring中jdbcTemplate的用法实例(一)

一、首先配置JdbcTemplate; 要使用Jdbctemplate 对象来完成jdbc 操作。通常情况下,有三种种方式得到JdbcTemplate 对象。        第一种方式:我们可...
  • u013766398
  • u013766398
  • 2016年07月19日 14:28
  • 1171

JdbcTemplate 简介

JdbcTemplate针对数据查询提供了多个重载的模板方法,你可以根据需要选用不同的模板方法。 如果你的查询很简单,仅仅是传入相应SQL或者相关参数,然后取得一个单一的结果,那么你可以选择如下一组便...
  • gjswxhb
  • gjswxhb
  • 2013年02月17日 20:56
  • 11338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JdbcTemplate查询
举报原因:
原因补充:

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