jdbcTemplate 常用查询

  |   0 评论   |   0 浏览

查询返回某一个值

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

}