查询返回某一个值
String sql = "select count(*) from user";
//调用方法获得记录数
int count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println("数据总数:" + count);
查询返回Map
//sql语句
String sql = "select * from user where name = ? and address = ?";
String name = "pengzai";
String address = "luoyang";
Map<String, Object> user = jdbcTemplate.queryForMap(sql, new Object[] {name,address});
System.out.println(user);
查询返回Map集合
//sql语句
String sql = "select * from user where address = ?";
String address = "luoyang";
List<Map<String, Object>> users = jdbcTemplate.queryForList(sql, new Object[] {address});
System.out.println(users);
查询返回单个对象
//sql语句
String sql = "select * from user where name = ?";
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");
System.out.println(user);
查询返回对象集合
//设置sql语句
String sql="select * from test2";
List<User> list=jdbcTemplate.query(sql, new MyRowMapper());
System.out.println(list);
class MyRowMapper implements RowMapper<User>{
@Override
public User mapRow(ResultSet rs, int num) throws SQLException {
//从结果集里把数据得到
String username=null;
String password=null;
if(isExistColumn(rs,"username")){
username=rs.getString("username");
}
if(isExistColumn(rs,"password")){
password=rs.getString("password");
}
//把数据封装到对象里
User user=new User();
user.setUsername(username);
user.setPassword(password);
return user;
}
/**
* 判断查询结果集中是否存在某列
* @param rs 查询结果集
* @param columnName 列名
* @return true 存在; false 不存咋
*/
public boolean isExistColumn(ResultSet rs, String columnName) {
try {
if (rs.findColumn(columnName) > 0 ) {
return true;
}
}
catch (Exception e) {
return false;
}
return false;
}
}