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.Driver4.创建实体类 在项目目录“/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.com6.工程目录结构