六、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、結語

按照慣例寫個結語,嗯...看了很多大佬的教程,結合我自己的總結了一波,當然了,不足之處請多包涵,也請多指教...如有雷同,也請多包涵......

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