(9)使用JdbcTemplate【从零开始学Spring Boot】
整体步骤:
(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
private JdbcTemplate 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;
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 Administrator
*
*/
@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);
}
}
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);
}
}
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);
}
}
剩下的就是启动进行测试了,访问地址:http://127.0.0.1:8080/demo2/getById?id=1
那么在浏览器中就可以看到:
{
id: 1,
name: "Angel"
}
当前前提是你的数据库中有id=1的数据了,不然会报错的:
org.springframework.dao.EmptyResultDataAccessException
=========================================================================
您的打赏是我最大的动力,打开微信或者支付宝扫描二维码向我打赏吧:
(支付宝支付)
(微信支付)