ResultSetExtractor:用于结果集数据提取,用户需实现方法extractData(ResultSet
rs)来处理结果集,用户必须处理整个结果集;(摘录比我说的好的句子)
@SuppressWarnings("unchecked") public void querySql(String sql){ List<User> list =jdbcTemplate.query(sql, new ResultSetExtractor(){ @Override public Object extractData(ResultSet rs) throws SQLException,DataAccessException { ResultSetMetaData meta = rs.getMetaData(); int cc = meta.getColumnCount(); //表的列数 List<User> users = new ArrayList<User>(); while (rs.next()){ User user = new User(); user.setId(rs.getString(1)); user.setName(rs.getString(2)); <span style="white-space:pre"> </span>user.setPassword(rs.getString("password"));
users.add(user); for (int i = 0; i <= cc; i++) { //打印列名 String kpiName = meta.getColumnName(i); System.out.println(kpiName); } } return users; } }); System.out.println(list.size()); }
测试sql为:String sql ="select * from TEST_1";
List<User> list中的数据即为测试sql的结果集 : [User [id=DDD, name=admin, password=123456], User [id=2, name=admin, password=admin123], User [id=3, name=admin, password=admin123], User [id=DDD, name=admin, password=123], User [id=DDD, name=admin, password=123456], User [id=abcd, name=abcf, password=abce], User [id=DDD, name=admin, password=123456], User [id=DDD, name=admin, password=123456]]