目录

spring boot jdbctemplate 的使用

2017年12月06日 10:02 | 6260次浏览 作者原创 版权保护

我们上一章节介绍了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



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/371.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程