jdbcTemplate用法例子

jdbcTemplate.execute("CREATE TABLE USER (user_id integer, name varchar(100))"); 
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object[] {name, id});  
jdbcTemplate.update("INSERT INTO USER VALUES(?, ?, ?, ?)", new Object[] {user.getId(), user.getName(), user.getSex(), user.getAge()});  
int count = jdbcTemplate.queryForInt("SELECT COUNT(*) FROM USER");  
//-----
String name = (String) jdbcTemplate.queryForObject("SELECT name FROM USER WHERE user_id = ?", new Object[] {id}, java.lang.String.class);  
//-----
List rows = jdbcTemplate.queryForList("SELECT * FROM USER");  
Iterator it = rows.iterator();  
while(it.hasNext()) {  
    Map userMap = (Map) it.next();  
    System.out.print(userMap.get("user_id") + "\t");  
    System.out.print(userMap.get("name") + "\t");  
    System.out.print(userMap.get("sex") + "\t");  
    System.out.println(userMap.get("age") + "\t");  
}  

query查询方法中带有回调接口有三个:ResultSetExtractor、RowCallbackHandler、RowMapper 

使用ResultSetExtractor时,一般是直接new ResultSetExtractor(),然后在extractData(ResultSet rs)方法中实现自己的内容,最后返回Object结果。 

使用RowCallbackHandler时,也是new RowCallbackHandler(),然后在processRow(ResultSet rs)方法中实现自己代码,并且将内容保存在上下文变量中,因为此方法没有返回类型(void) 

使用RowMapper时,new RowMapper(), 然后在mapRow(ResultSet rs, int rowNum)实现自己代码,并返回Object结果。

ResultSetExtractor一次处理多个结果,而RowCallbackHandler、RowMapper只处理单行结果

 new ResultSetExtractor() {  
  
            public Object extractData(ResultSet rs) throws SQLException, DataAccessException {  
                List list = new ArrayList();  
  
                while (rs.next()) {  
  
                    Userinfo u = new Userinfo();  
  
                    u.setId(rs.getInt("id"));  
  
                    u.setUsername(rs.getString("username"));  
  
                    u.setPassword(rs.getString("password"));  
  
                    u.setCrateDate(rs.getDate("createDate"));  
  
                    list.add(u);  
  
                }  
  
                return list;  
            }  
}
new RowCallbackHandler() {  
  
            public void processRow(ResultSet rs) throws SQLException {  
  
                System.out.println("j=" + (++j));  
                while (rs.next()) {  
  
                    Userinfo u = new Userinfo();  
  
                    u.setId(rs.getInt("id"));  
  
                    u.setUsername(rs.getString("username"));  
  
                    u.setPassword(rs.getString("password"));  
  
                    u.setCrateDate(rs.getDate("createDate"));  
  
                    list.add(u);  
  
                }  
  
            }  
}
 new RowMapper() {  
  
            public Object mapRow(ResultSet rs, int rowNum) throws SQLException {  
  
                System.out.println("j=" + (++j));  
  
                Userinfo u = new Userinfo();  
  
                u.setId(rs.getInt("id"));  
  
                u.setUsername(rs.getString("username"));  
  
                u.setPassword(rs.getString("password"));  
  
                u.setCrateDate(rs.getDate("createDate"));  
  
                return u;  
            }  
        }

 

posted @ 2017-08-22 17:43  博客园_狮子  阅读(305)  评论(0编辑  收藏  举报