首发地址: http://inmethetiger.iteye.com/blog/1687495
上一篇是基于RowMapper写的。这篇是基于CallbackHandler写的。基本上类似。写下只是为了方便记忆
使用RowCallbackHandler主要返回值是void,所以,需要使用一个容器装载结果集
实例如下:也是六个。和RowMapper对应。
1:void query(String sql, RowCallbackHandler rch)
@Test public void SqlRowCall() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test"; final List objList = new ArrayList(); jdbcTemplate.query(listSql, new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { Map row = new HashMap(); row.put(rs.getInt("id"), rs.getString("name")); objList.add(row); } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
2:void query(String sql, Object[] args, RowCallbackHandler rch)
public void SqlArgsRowCall() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; final List objList = new ArrayList(); jdbcTemplate.query(listSql,new Object[]{"name2"},new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { Map row = new HashMap(); row.put(rs.getInt("id"), rs.getString("name")); objList.add(row); } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
3:void query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch)
@Test public void SqlArgsArgsTypeRowCall() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; final List objList = new ArrayList(); jdbcTemplate.query(listSql,new Object[]{"name2"},new int[]{java.sql.Types.INTEGER},new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { Map row = new HashMap(); row.put(rs.getInt("id"), rs.getString("name")); objList.add(row); } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
4:void query(String sql,RowCallbackHandler)
@Test public void SqlRowCallArgs(){ jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; final List objList = new ArrayList(); jdbcTemplate.query(listSql,new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { Map row = new HashMap(); row.put(rs.getInt("id"), rs.getString("name")); objList.add(row); } },"name2"); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
5:void query(PreparedStatementCreator psc, RowCallbackHandler rch)
public void PreRowCall() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); final String listSql = "select * from test where name=?"; final List objList = new ArrayList(); jdbcTemplate.query(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = con.prepareStatement(listSql); ps.setString(1, "name2"); return ps; } }, new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { Map row = new HashMap(); row.put(rs.getInt("id"), rs.getString("name")); objList.add(row); } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
6:void query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch)
@Test public void SqlPreRowCall() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); final String listSql = "select * from test where name=?"; final List objList = new ArrayList(); jdbcTemplate.query(listSql,new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { ps.setString(1, "name2"); } }, new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { Map row = new HashMap(); row.put(rs.getInt("id"), rs.getString("name")); objList.add(row); } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
--------------------------------------------------广告线-----------------------------------------------------------------------