首发地址: 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());
}
}
--------------------------------------------------广告线-----------------------------------------------------------------------