spring boot jdbctemplate使用

Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。 JdbcTemplate 是在JDBC API基础上提供了更抽象的封装,并提供了基于方法注解的事务管理能力。 通过使用SpringBoot自动配置功能并代替我们自动配置beans. 在maven项目的pom.xml中,我们需要增加spring-boot-starter-jdbc模块。

1
2
3
4
< dependency >
     < groupId >org.springframework.boot</ groupId >
     < artifactId >spring-boot-starter-jdbc</ artifactId >
  </ dependency >

在pom.xml文件中引入之后,我们如果想在类中使用jdbcTemplate,需在类中加入如下代码

1
2
@Resource
private  JdbcTemplate jdbcTemplate;

关于在这里不用Autowired引入 而用 Resource 的区别请读者自行谷歌或百度,在这里不在累述,见谅。

二、实现代码

编写com.kfit.test.dao.DemoDao 数据库操作类:

DAO层

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 : 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 界面输出数据

1
2
3
4
{
id:  1 ,
name:  "Angel"
}

前提是你的数据库中有id=1的数据了,不然会报错的,异常如下

1
org.springframework.dao.EmptyResultDataAccessException
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值