广州做网站商城的公司,赣州网络公司电话,网站建设的书籍,wordpress自动文章排版文章目录 1. 什么是MyBatis#xff1f;2. 入门MyBatis2.1 准备工作2.2.1 创建springboot项目2.2.2 数据准备 2.2 配置数据库连接2.3 写持久层代码2.4 单元测试2.4.1 web测试2.4.2 自动测试 1. 什么是MyBatis#xff1f;
MyBatis是一种持久层框架#xff0c;用于简化JDBC的开… 文章目录 1. 什么是MyBatis2. 入门MyBatis2.1 准备工作2.2.1 创建springboot项目2.2.2 数据准备 2.2 配置数据库连接2.3 写持久层代码2.4 单元测试2.4.1 web测试2.4.2 自动测试 1. 什么是MyBatis
MyBatis是一种持久层框架用于简化JDBC的开发。
持久层指的就是持久化操作的层, 通常指数据访问层(dao), 是⽤来操作数据库的。
2. 入门MyBatis MyBatis操作数据库分为下面四步 准备工作创建springboot项目准备数据库表实体类引入MyBatis相关依赖配置相关文件编写代码分为注解/XML两种测试 2.1 准备工作
2.2.1 创建springboot项目 导⼊ mybatis的起步依赖、mysql的驱动包。 导入mysql驱动包的原因是因为MyBatis是一种持久层框架具体的数据存储和数据操作还是在mysql中所以导入mysql驱动是必要的。 项目创建成功后pom.xml文件中自动导入两个依赖。 当然也可以在maven仓库中找到相关依赖手动添加。 如何在之前创建项目中添加这些依赖
快捷键AltInsert点击Edit Starters 点击OK 选择需要的依赖
2.2.2 数据准备
MyBatis是操作数据库的那么肯定需要有数据库了可以在MySql中创建一个数据库方便学习操作。
创建数据库创建userinfo表添加数据
mysql CREATE TABLE userinfo (- id INT ( 11 ) NOT NULL AUTO_INCREMENT,- username VARCHAR ( 127 ) NOT NULL,- password VARCHAR ( 127 ) NOT NULL,- age TINYINT ( 4 ) NOT NULL,- gender TINYINT ( 4 ) DEFAULT 0 COMMENT 1-男 2-⼥ 0-默认,- phone VARCHAR ( 15 ) DEFAULT NULL,- delete_flag TINYINT ( 4 ) DEFAULT 0 COMMENT 0-正常, 1-删除,- create_time DATETIME DEFAULT now(),- update_time DATETIME DEFAULT now(),- PRIMARY KEY ( id )- ) ENGINE INNODB DEFAULT CHARSET utf8mb4;
Query OK, 0 rows affected (0.02 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( admin, admin, 18, 1, 18612340001 );
Query OK, 1 row affected (0.00 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( zhangsan, zhangsan, 18, 1, 18612340002 );
Query OK, 1 row affected (0.01 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( lisi, lisi, 18, 1, 18612340003 );
Query OK, 1 row affected (0.01 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( wangwu, wangwu, 18, 1, 18612340004 );
Query OK, 1 row affected (0.00 sec)
mysql select * from userinfo;
---------------------------------------------------------------------------------------------------------
| id | username | password | age | gender | phone | delete_flag | create_time | update_time |
---------------------------------------------------------------------------------------------------------
| 1 | admin | admin | 18 | 1 | 18612340001 | 0 | 2023-11-16 13:20:09 | 2023-11-16 13:20:09 |
| 2 | zhangsan | zhangsan | 18 | 1 | 18612340002 | 0 | 2023-11-16 13:20:22 | 2023-11-16 13:20:22 |
| 3 | lisi | lisi | 18 | 1 | 18612340003 | 0 | 2023-11-16 13:20:35 | 2023-11-16 13:20:35 |
| 4 | wangwu | wangwu | 18 | 1 | 18612340004 | 0 | 2023-11-16 13:20:52 | 2023-11-16 13:20:52 |
---------------------------------------------------------------------------------------------------------
4 rows in set (0.00 sec)创建实体类userInfo.java:
package com.example.mybatisdemo.model;import lombok.Data;
import java.util.Date;
Data
public class UserInfo {private Integer id;private String username;private String password;private Integer age;private Integer gender;private String phone;private Integer deleteFlag;private Date createTime;private Date updateTime;
}2.2 配置数据库连接
配置application.yml⽂件, 配置内容如下:
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLfalseusername: rootpassword: 131452driver-class-name: com.mysql.cj.jdbc.Driver其中mybatis_test是要操作的数据库username是用户名一般都是rootpassword是你数据库的密码。 其他的一般不需要修改使用时直接复制就行。 application.properties⽂件配置和yml相同只是格式的区别。
2.3 写持久层代码 在项⽬中, 创建mapper包包中创建持久层接⼝UserInfoMapper。 Mybatis的持久层接⼝规范⼀般都叫 XxxMapper放在mapper包中这是一种企业规范。 代码
import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;Mapper
public interface UserInfoMapper {//查询所有⽤⼾Select(select username, password, age, gender, phone from userinfo)public ListUserInfo queryAllUser();
}Mapper注解 表⽰是MyBatis中的Mapper接⼝用于与MyBatis框架交互。 Select注解 代表的就是select查询也就是注解对应⽅法的具体实现内容。
2.4 单元测试
2.4.1 web测试
如何验证上面代码成功运行呢 可以使用web的方式
2.4.2 自动测试
但是这种方法些许麻烦。 其实在创建出来的SpringBoot⼯程中在src下的test⽬录下已经⾃动帮我们创建好了测试类 我们可以直接使⽤这个测试类来进⾏测试。 在需要测试的接口中使用快捷键AltInsert点击Test 勾选要测试的方法点击OK⽤Idea⾃动⽣成测试类 编写测试代码
Slf4j
SpringBootTest
class UserInfoMapperTest {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid queryAllUser() {ListUserInfo list userInfoMapper.queryAllUser();log.info(list.toString());}
}运行结果 SpringBootTest 注解 是 Spring Boot 提供的一个注解用于在 Spring Boot 应用中启动一个完整的测试环境。 Slf4j 注解 是Lombok提供的一种注解用于打印日志。