1. 程式人生 > 其它 >二、整合MySQL資料庫

二、整合MySQL資料庫

技術標籤:Spring Boot微服務專案實戰資料庫mysqlspringmybatisjava

整合MySQL資料庫

文章目錄


來自於《Spring Boot微服務專案實戰》該書所記錄的筆記。

一、引入依賴

整合MySQL資料庫之前,需要在pom檔案中新增依賴,程式碼如下:

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId
>
</dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
  • mysql-connector-java:MySQL連線Java的驅動程式。
  • 支援通過JDBC連線資料庫。

二、新增資料庫配置

在application.properties中新增如下配置資訊:

### MySQL連線資訊
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
### 使用者名稱
spring.datasource.username=root
### 密碼
spring.datasource.password=root
### 驅動
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

三、設計表和實體

在test資料庫中建立如下表並插入資料:

DROP TABLE IF EXISTS `ay_user`;
CREATE TABLE `ay_user` (
  `id` varchar(32) NOT NULL PRIMARY KEY COMMENT '主鍵',
  `name` varchar(32) DEFAULT NULL COMMENT '使用者名稱',
  `password` varchar(32) DEFAULT NULL COMMENT '密碼'
);
INSERT INTO `ay_user` (`id`,`name`,`password`) VALUES
('1','Jadore','123456'); INSERT INTO `ay_user` (`id`,`name`,`password`) VALUES ('2','SpringBoot','123456');

在這裡插入圖片描述
接著我們在src\main\java\com\example\demo下新建實體類AyUser.java,程式碼如下:

package com.example.demo;
/*
* 描述:使用者表
* @Author Jadore
* @data 2020/12/7
* */

public class AyUser {
    //id
    private String id;
    //使用者名稱
    private String name;
    //密碼
    private String password;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

四、測試開發用例

在DemoApplicationTests.java中新增如下程式碼:

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.annotation.Resource;
import java.util.List;


@SpringBootTest
class DemoApplicationTests {
    @Test
    void contextLoads() {
    }
    @Resource
    private JdbcTemplate jdbcTemplate;
    @Test
    public void mySqlTest() {
        String sql = "select id,name,password from ay_user";
        List<AyUser> userList = (List<AyUser>) jdbcTemplate.query(sql, (rs, rowNum) -> {
            AyUser user = new AyUser();
            user.setId(rs.getString("id"));
            user.setName(rs.getString("name"));
            user.setPassword(rs.getString("password"));
            return user;
        });
        System.out.println("查詢成功:");
        for(AyUser user:userList) {
            System.out.println("[id]:"+user.getId()+";[name]:");
        }
    }
}
  • jdbcTemplate:通過JDBC連線資料庫的工具類,可以對資料庫進行增刪改查等操作。
  • @Resource:Spring Boot自動例項化一個物件。
  • query():傳入SQL語句和RowMapper物件(或其子類物件)進行資料庫查詢。
  • (rs, rowNum) -> {},即RowMapper:將查詢出的資料封裝成使用者定義的類並返回。

在這裡插入圖片描述