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; } }