jdbcTemplate执行sql获取对象的集合

在项目中可能会遇到,项目架构是hibernate,但某些查询还是习惯用sql语句来做,或者某些查询用sql语句更加简单灵活。这时候我们可以注入jdbcTemplate。

1.在非springboot项目中jdbctemplate的配置及注入
配置:在spring-config.xml中注册bean,注意在注册bean时需要将datasource添加进入


 

注入:在使用jdbctemplate的地方

@Autowired
private JdbcTemplate jdbcTemplate;

2.在springboot项目中
添加jdbc的坐标。配置文件中正常配置数据源相关内容,如下:

org.springframework.boot
spring-boot-starter-jdbc


注入:

@Autowired
private JdbcTemplate jdbcTemplate;

3.查询
a.获取一个对象集合,通过BeanPropertyRowMapper将sql获取的结果映射到对应的对象中

    String sql="select app_id appId,count from table";
      List query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TracePointTypeDTO.class));
      
      若需要有参数传入
      String sql="select app_id appId,count from table where app_id=?";
      List query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TracePointTypeDTO.class),new Object[]{appId});
  
      
  b.获取String对象的集合
    String timeSql="select update_time  from apps_exchange_rate group by update_time order by update_time desc;";
    List strings =jdbcTemplate.query(timeSql, new RowMapper() {
        public String mapRow(ResultSet rs, int rowNum)
                throws SQLException {
            return rs.getString(1);
        }
    });    
      

你可能感兴趣的:(javaspring)