zoukankan      html  css  js  c++  java
  • (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

    那么在浏览器中就可以看到:

    {

    id1,

    name"Angel"

    }

    当前前提是你的数据库中有id=1的数据了,不然会报错的:

    org.springframework.dao.EmptyResultDataAccessException

     

     

    =========================================================================

    您的打赏是我最大的动力,打开微信或者支付宝扫描二维码向我打赏吧:


    (支付宝支付)



    (微信支付)

  • 相关阅读:
    NOIP模拟 10
    无聊的 邮递员 插头dp
    类实例化对象可以访问静态(static)方法,但是不能访问静态属性。
    PHP——抽象类与接口的区别
    工厂模式
    win10 专业版 git bash 闪退问题终极解决方案
    git基本的使用原理
    排序算法-插入排序
    如何进行CodeReview
    php中的各种http报错的报错的状态码的分析
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147136.html
Copyright © 2011-2022 走看看