美文网首页
Spring Boot学习:如何使用JdbcTemplate

Spring Boot学习:如何使用JdbcTemplate

作者: singleZhang2010 | 来源:发表于2020-11-02 08:41 被阅读0次

概述

JdbcTemplate是Spring Data Jdbc 提供的一个操作数据库的便捷工具,可以帮我们方便地操作数据库,而不用直接使用jdbc,它主要提供以下五种类型的方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句。
  • update、batchUpdate方法:用于执行新增、修改、删除等语句。
  • query方法及queryForXXX方法:用于执行查询相关的语句。
  • call方法:用于执行数据库存储过程和函数相关的语句。

当然,我们日常开发的项目里使用的是更强大的框架,像MyBatis、Hibernate或者Spring Data JPA,这里只是简单介绍一下JdbcTemplate的使用。

开始使用JdbcTemplate

  1. 在04节 Spring Boot学习:如何使用MyBatis框架的项目基础里,删除MyBatis的依赖,加入jdbc相关依赖
        <!-- jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
  1. 创建实体类SysAdminUser.java
package com.zhlab.demo.model;

import java.util.Date;

public class SysAdminUser {
    private Long adminUserId;

    private String userName;

    private String password;

    private String nickName;

    private Long deptId;

    private String phone;

    private String email;

    private String avatar;

    private Boolean status;

    private Boolean deletedFlag;

    private String loginIp;

    private Date loginTime;

    private Date createdAt;

    private Date updatedAt;

    private Date deletedAt;

    private Long createdBy;

    private Long updatedBy;

    private Long deletedBy;

    private String remark;

    //省略getter setter
}
  1. 创建包com.zhlab.demo.dao作为DAO层,并创建SysAdminUserRepository.java
package com.zhlab.demo.dao;

import com.zhlab.demo.model.SysAdminUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @ClassName SysAdminUserRepository
 * @Description //SysAdminUserRepository
 * @Author singleZhang
 * @Email 405780096@qq.com
 * @Date 2020/10/31 0031 下午 2:45
 **/
@Repository
public class SysAdminUserRepository {

    @Autowired
    JdbcTemplate jdbcTemplate;

    /**
     * 新增用户
     */
    public void save(SysAdminUser user) {
        String sql = "insert into sys_admin_user(admin_user_id, user_name, password, nick_name, dept_id, phone, email) values(?,?,?,?,?,?,?)";
        jdbcTemplate.update(sql,
                user.getAdminUserId(),
                user.getUserName(),
                user.getPassword(),
                user.getNickName(),
                user.getDeptId(),
                user.getPhone(),
                user.getEmail());
    }

    /**
     * 删除用户
     */
    public void delete(Long id) {
        String sql = "delete from sys_admin_user where admin_user_id=?";
        jdbcTemplate.update(sql, id);
    }

    /**
     * 查询全部用户
     */
    public List<SysAdminUser> findAll() {
        String sql = "select * from sys_admin_user order by admin_user_id desc";
        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(SysAdminUser.class));
    }

}

  1. 在Service层,创建SysAdminUserService.java
package com.zhlab.demo.service;

import com.zhlab.demo.dao.SysAdminUserRepository;
import com.zhlab.demo.model.SysAdminUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @ClassName SysAdminUserService
 * @Description //SysAdminUserService 
 * @Author singleZhang
 * @Email 405780096@qq.com
 * @Date 2020/10/31 0031 上午 9:45
 **/
@Service
public class SysAdminUserService {

    @Autowired
    SysAdminUserRepository sysAdminUserRepository;

    /**
     * 新增用户
     * */
    public void addUser(SysAdminUser user){
        sysAdminUserRepository.save(user);
    }

    /**
     * 查询所有用户
     * */
    public List<SysAdminUser> findAll(){
        return sysAdminUserRepository.findAll();
    }

}

5.在接口层创建UserController.java

package com.zhlab.demo.controller;

import com.zhlab.demo.model.SysAdminUser;
import com.zhlab.demo.service.SysAdminUserService;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @ClassName UserController
 * @Description //用户接口层
 * @Author singleZhang
 * @Email 405780096@qq.com
 * @Date 2020/10/31 0031 上午 9:43
 **/
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    SysAdminUserService sysAdminUserService;

    /* 方法注解 */
    @ApiOperation(value = "方法名:用户列表", notes = "获取用户列表")
    @GetMapping("/list")
    public List<SysAdminUser> list(){
        List<SysAdminUser> list = sysAdminUserService.findAll();

        return list;
    }

    @ApiOperation(value = "方法名:新增用户", notes = "新增用户")
    @PostMapping("/add")
    public void add(@ApiParam(value = "参数:用户信息" , required=true ) @RequestParam SysAdminUser user){
        sysAdminUserService.addUser(user);
    }
}

  1. 运行项目,打开http://localhost:8080/swagger-ui.html

    两个接口
  2. 先看/user/list接口


    返回结果
  3. 使用/user/add接口来添加数据


    新增用户
  4. 再查看一下/user/list接口,看看是否有新增的用户信息了


    返回结果

总结

好了,以上就是对jdbcTemplate简单的使用,了解一下这类操作数据库的使用方式就好。

项目地址

https://gitee.com/kaixinshow/springboot-note

返回【Spring Boot学习】目录

相关文章

网友评论

      本文标题:Spring Boot学习:如何使用JdbcTemplate

      本文链接:https://www.haomeiwen.com/subject/yhvsvktx.html