集成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:将查询出的数据封装成用户定义的类并返回。