转自:https://www.cnblogs.com/qingshanli/p/11296048.html#_label3
获取count、sum等聚合函数返回的唯一值
/** * 只能接受String,Integer这种单列类型的实体,否则汇报异常 */ @Test public void queryForCount1() { String sql = "select count(1) from pass_user where id > ?"; Integer count = jdbcTemplate.queryForObject(sql, Integer.class, 300000); LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", count); }
获取单个记录的某一列值
/** * 只能接受String,Integer这种单列类型的实体,否则汇报异常 */ @Test public void queryForObject1() { String sql = "select NAME from pass_user where id = ?"; String name = jdbcTemplate.queryForObject(sql, String.class, 30);//查询结果空集时会报EmptyResultDataAccessException异常 LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", name); }
获取单个记录的所有列值
/** * 可以自动进行驼峰匹配 */ @Test public void queryForObject2() { String sql = "select * from pass_user where id = ?"; RowMapper<PassUser> rowMapper = new BeanPropertyRowMapper<>(PassUser.class); PassUser passUser = jdbcTemplate.queryForObject(sql, rowMapper, 180);//查询结果空集时会报EmptyResultDataAccessException异常 LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", passUser); }
获取多个记录的某一列值
/** * 实体类需要实现接口,覆写方法 */ @Test public void queryForList1() { String sql = "select name from pass_user where id < ?"; List<String> names = jdbcTemplate.queryForList(sql, String.class, 50);//只能查询单列属性值集合 LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", names); }
获取多个记录的所有列值
/** * 实体类需要实现接口,覆写方法 */ @Test public void queryForList2() { String sql = "select * from pass_user where id < ?"; List<UserEntity> userEntityList = jdbcTemplate.query(sql, new UserEntity(), 0); LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", userEntityList); }