在项目中可能会遇到,项目架构是hibernate,但某些查询仍是习惯用sql语句来作,或者某些查询用sql语句更加简单灵活。这时候咱们能够注入jdbcTemplate。spring
1.在非springboot项目中jdbctemplate的配置及注入
配置:在spring-config.xml中注册bean,注意在注册bean时须要将datasource添加进入sql
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean>
注入:在使用jdbctemplate的地方springboot
@Autowired private JdbcTemplate jdbcTemplate;
2.在springboot项目中
添加jdbc的坐标。配置文件中正常配置数据源相关内容,以下:
<dependency>架构
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
注入:app
@Autowired private JdbcTemplate jdbcTemplate;
3.查询
a.获取一个对象集合,经过BeanPropertyRowMapper将sql获取的结果映射到对应的对象中spring-boot
String sql="select app_id appId,count from table"; List<TracePointTypeDTO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TracePointTypeDTO.class)); 若须要有参数传入 String sql="select app_id appId,count from table where app_id=?"; List<TracePointTypeDTO> 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<String> strings =jdbcTemplate.query(timeSql, new RowMapper<String>() { public String mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getString(1); } });