9. 使用JdbcTemplate
Posted BlackCatFish
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. 使用JdbcTemplate相关的知识,希望对你有一定的参考价值。
整体步骤:
(1) 在pom.xml加入jdbcTemplate的依赖;
(2) 编写DemoDao类,声明为:@Repository,引入JdbcTemplate
(3) 编写DemoService类,引入DemoDao进行使用
(4) 编写Demo2Controller进行简单测试。
具体操作流程如下:
使用JdbcTemplate类需要加入(如果在JPA已经加入的话,这个步骤就可以忽略了)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
那么只需要在需要使用的类中加入:
@Resource
privateJdbcTemplate jdbcTemplate;
这样就可以使用jdbcTemplate进行数据库的操作了。
比如:
String sql = "insert into Demo(name,age) values(?,?)"; jdbcTemplate.update(sql,new Object[]{demo.getName(),demo.getAge()});
实战代码:
编写com.kfit.test.dao.DemoDao 数据库操作类:
package com.kfit.test.dao; import javax.annotation.Resource; importorg.springframework.jdbc.core.BeanPropertyRowMapper; importorg.springframework.jdbc.core.JdbcTemplate; importorg.springframework.jdbc.core.RowMapper; importorg.springframework.stereotype.Repository; import com.kfit.test.bean.Demo; /** * 使用JdbcTemplate操作数据库. * @author Administrator * */ @Repository publicclass DemoDao { @Resource private JdbcTemplate jdbcTemplate; /** * 通过id获取demo对象. * @param id * @return */ public Demo getById(longid){ Stringsql = "select*from Demo where id=?"; RowMapper<Demo>rowMapper =newBeanPropertyRowMapper<Demo>(Demo.class); returnjdbcTemplate.queryForObject(sql, rowMapper,id); } }
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 privateDemoRepository demoRepository; @Resource private DemoDaodemoDao; public voidsave(Demo demo){ demoRepository.save(demo); } public Demo getById(longid){ //demoRepository.findOne(id);//在demoRepository可以直接使用findOne进行获取. returndemoDao.getById(id); } }
c
om.kfit.test.web.Demo2Controller : package com.kfit.test.web; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping; importorg.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(){ Demod = 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); } }
剩下的就是启动进行测试了,访问地址:http://127.0.0.1:8080/demo2/getById?id=1
那么在浏览器中就可以看到:
{
id: 1,
name: "Angel"
}
当前前提是你的数据库中有id=1的数据了,不然会报错的:
org.springframework.dao.EmptyResultDataAccessException
以上是关于9. 使用JdbcTemplate的主要内容,如果未能解决你的问题,请参考以下文章