我们上一章节介绍了spring boot如何配置mysql数据源,本章节简单介绍spring boot怎么使用jdbcTemplate数据源工具。
Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。 JdbcTemplate 是在JDBC API基础上提供了更抽象的封装,并提供了基于方法注解的事务管理能力。 通过使用SpringBoot自动配置功能并代替我们自动配置beans. 在maven项目的pom.xml中,我们需要增加spring-boot-starter-jdbc模块。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
在pom.xml文件中引入之后,我们如果想在类中使用jdbcTemplate,需在类中加入如下代码
@Resource private JdbcTemplate jdbcTemplate;
关于在这里不用Autowired引入 而用 Resource 的区别请读者自行谷歌或百度,在这里不在累述,见谅。
二、实现代码
编写com.kfit.test.dao.DemoDao 数据库操作类:
DAO层
package com.kfit.test.dao; import javax.annotation.Resource; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import com.kfit.test.bean.Demo; /** * 使用JdbcTemplate操作数据库. * @author V型知识库 www.vxzsk.com * */ @Repository publicclass DemoDao { @Resource private JdbcTemplate jdbcTemplate; /** * 通过id获取demo对象. * @param id * @return */ public Demo getById(long id){ String sql = "select *from Demo where id=?"; RowMapper<Demo> rowMapper = new BeanPropertyRowMapper<Demo>(Demo.class); returnjdbcTemplate.queryForObject(sql, rowMapper,id); } }
service层 com.kfit.test.service.DemoService :
package com.kfit.test.service; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.kfit.test.bean.Demo; import com.kfit.test.dao.DemoDao; import com.kfit.test.dao.DemoRepository; /** * 提供Demo服务类. * @author Administrator * */ @Service public class DemoService { @Resource private DemoRepository demoRepository; @Resource private DemoDao demoDao; public void save(Demo demo){ demoRepository.save(demo); } public Demo getById(long id){ //demoRepository.findOne(id);//在demoRepository可以直接使用findOne进行获取. return demoDao.getById(id); } }
controller层 com.kfit.test.web.Demo2Controller :
package com.kfit.test.web; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.kfit.test.bean.Demo; import com.kfit.test.service.DemoService; @RestController @RequestMapping("/demo2") publicclass Demo2Controller { @Resource private DemoService demoService; /** * 测试保存数据方法. * @return */ @RequestMapping("/save") public String save(){ Demo d = new Demo(); d.setName("Angel"); demoService.save(d);//保存数据. return"ok.Demo2Controller.save"; } //地址:http://127.0.0.1:8080/demo2/getById?id=1 @RequestMapping("/getById") public Demo getById(longid){ returndemoService.getById(id); } }
三,启动项目测试效果
1,启动项目工程,在浏览器中输入 http://127.0.0.1:8080/demo2/getById?id=1 界面输出数据
{ id: 1, name: "Angel" }
前提是你的数据库中有id=1的数据了,不然会报错的,异常如下
org.springframework.dao.EmptyResultDataAccessException
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程