1.数据准备
新建一个名为mydb的数据库,在mydb中新建一个名为user的数据表,然后往数据表里插入3条数据,具体SQL语句如下。
create database if not exists mydb character set = utf8;
create table user (
id int(11) not null auto_increment,
name varchar(30) default null,
email varchar(50) default null,
primary key (id)
);
insert into user values (1, 'cherry', '258****996@qq.com');
insert into user values (2, 'owen', '490***112@qq.com');
insert into user values (3, 'steven', '125****421@qq.com');
2.引入依赖
新建一个SpringBoot工程,并在pom.xml文件中添加集成MySQL所需要的dependency。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
3.添加配置
在application.properties文件中添加如下配置信息。
############################################################
#
# MySQL配置
#
############################################################
### 连接信息
spring.datasource.url = jdbc:mysql://localhost:3306/mydb
### 用户名
spring.datasource.username = root
### 密码
spring.datasource.password = admin123
### 驱动
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
4.创建实体类
在项目目录“/src/main/java/com/leichuangkj/mysql”下新建“/dao/po”目录,并在po目录下新建User实体类,具体代码如下。
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
private Integer id;
private String name;
private String email;
}
5.测试用例
在单元测试类MysqlApplicationTests中添加如下代码。
@SpringBootTest
class MysqlApplicationTests {
@Resource
private JdbcTemplate jdbcTemplate;
/**
* @description SpringBoot集成Mysql单元测试
* @author steven
* @date 2020-06-14
*/
@Test
public void mySqlTest(){
String sql = "select id,name,email from user";
List<User> userList = jdbcTemplate.query(sql, new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
return user;
}
});
for(User user:userList){
System.out.println("【id】:" + user.getId() + ";【name】:" + user.getName()+ ";【email】:" + user.getEmail());
}
}
}
- JdbcTemplate:一个通过JDBC连接数据库的工具类,通过这个工具类对数据库进行增删改查等操作。
- @Resource:自动注入,通过这个注解在项目启动之后,SpringBoot会实例化一个JdbcTemplate对象,省去初始化工作。
- query:JdbcTemplate对象中的查询方法,通过传入的SQL语句和RowMapper对象,可以查询出数据库中的数据。
- RowMapper:RowMapper对象可以将查询的每一行数据封装成用户自定义的类,在上述代码中,通过调用RowMapper中的mapRow方法,可将数据库中的每一行数据封装成User对象并返回。
右键执行MysqlApplicationTests单元测试,这时可以看到控制台显示“1 test passed”以及如下打印信息。
【id】:1;【name】:cherry;【email】:258****996@qq.com
【id】:2;【name】:owen;【email】:490***112@qq.com
【id】:3;【name】:steven;【email】:125****421@qq.com
6.工程目录结构