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的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

JdbcTemplate和声明式事务(Spring框架)

JdbcTemplate和声明式事务(Spring框架)

实际开发中Dao层使用JdbcTemplate

;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk

Spring 对JDBC的支持(JdbcTemplate)