六、springboot 使用 JdbcTemplate

1、jdbc的特点

  1. 速度快,相对于其它的ORM框架而言,JDBC是最快的
  2. 配置简单,Spring自家出品,必是精品,杠杠的
  3. 学习成本低

2、添加依赖

在pom文件引入spring-boot-starter-jdbc的依赖

<!-- Spring JDBC 的依赖包 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

3、application.yml 配置

 在application.yml 文件配置数据库相关信息,至于创建数据库就不写了

server:
  prot: 8080

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: mysql://localhost:3306/wzp
    username: root
    password: root

4、创建实体类

package com.example.demo;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 使用 @Setter @Getter 两个注解可以不用手写get和set方法
 */
@Setter
@Getter
public class User implements Serializable {
    private static final long serialVersionUID = 5123020951483359287L;

    private Integer id;

    private String username;

    private String password;

}

5、具体接口

我这里是直接简写了,没有使用postman什么的测,直接用浏览器了,所以仅供参考,不提倡

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class UserController {

    private final JdbcTemplate jdbcTemplate;

    @Autowired
    public UserController(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    /**
     * 新增用户
     * @return
     */
    @GetMapping("save")
    public User save() {
        User user = new User();
        user.setUsername("wzp");
        user.setPassword("123456");
        String sql = "insert into user(username, password) values(?, ?)";
        jdbcTemplate.update(sql, user.getUsername(), user.getPassword());
        return user;
    }

    /**
     * 根据id删除用户
     * @return
     */
    @GetMapping("delete")
    public String delete() {
        Integer id = 1;
        String sql = "DELETE FROM user WHERE id = ?";
        jdbcTemplate.update(sql, id);
        return "success";
    }

    /**
     * 根据id修改用户
     * @return
     */
    @GetMapping("update")
    public User update() {
        User user = new User();
        user.setId(1);
        user.setUsername("wzpwzp");
        user.setPassword("123456");
        String sql = "UPDATE user SET username = ? ,password = ? WHERE id = ?";
        jdbcTemplate.update(sql, user.getUsername(), user.getPassword(), user.getId());
        return user;
    }

    /**
     * 查询所有用户
     * @return
     */
    @GetMapping("findAll")
    public List<User> findAll() {
        String sql = "select * from user";
        List<User> list = jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<>(User.class));
        return list;
    }
}

6、测试结果

7、结语

按照惯例写个结语,嗯...看了很多大佬的教程,结合我自己的总结了一波,当然了,不足之处请多包涵,也请多指教...如有雷同,也请多包涵......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章