快速入门
User 表(示例)
1、创建表
CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
use `mybatis_plus`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(1)这里的 id 是 bigint,MyBatis-Plus 在数据插入时,默认使用雪花算法,生成的 id 长度较长
2、添加数据
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
创建 Spring Boot 项目
1、Spring Initializr 服务器 URL:https://start.aliyun.com/
2、引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.test</groupId>
<artifactId>mybatisplus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatisplus</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 默认添加的依赖 -->
<!-- Spring Boot启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 测试启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 手动添加的依赖 -->
<!-- Mybatis-Plus启动器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- lombok用于简化实体类开发 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<optional>true</optional>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.0</version>
</plugin>
</plugins>
</build>
</project>
3、IDEA 添加 Lombok 插件
配置 Spring Boot
1、application.properties
(1)properties:使用 . 分隔;yml:使用 : 分隔
(2)yml 格式要求高于 properties
2、application.yml
spring:
#配置数据源信息
datasource:
#配置数据源类型,使用Spring Boot中的默认数据源
type: com.zaxxer.hikari.HikariDataSource
#配置连接数据库的各个信息
driver-class-name: com.mysql.cj.jdbc.Driver
#编码字符集:utf-8,禁用SSL协议
url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
username: root
password: 123456
mybatis-plus:
configuration:
#添加日志功能
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#设置MyBatis-Plus的全局配置
global-config:
db-config:
#设置实体类所对应的表的统一前缀
table-prefix: table_
#设置统一的主键生成策略
id-type: auto
#配置Mapper接口所对应的包,以下为默认位置
mapper-locations: *:/mapper/**/*.xml
#配置类型别名所对应的包
type-aliases-package: org.test.mybatisplus.pojo
#扫描通用枚举的包(已弃用)
type-enums-package: com.atguigu.mybatisplus.enums
(1)驱动类 driver-class-name
(2)Spring Boot 2.0(内置 jdbc 5 驱动),驱动类使用:driver-class-name: com.mysql.jdbc.Driver
(3)Spring Boot 2.1及以上(内置 jdbc 8 驱动),驱动类使用:driver-class-name: com.mysql.cj.jdbc.Driver
(4)版本错位时,运行测试用例有 WARN 信息
(5)连接地址 url
(6)MySQL 5.7 版本 url:jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
(7)MySQL 8.0 版本 url:jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
(8)版本错位时,运行测试用例报告如下错误:java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more
实体类
//get方法
@Getter
//set方法
@Setter
//无参构造器
@NoArgsConstructor
//所有参数的构造器
@AllArgsConstructor
//重写equals、hashCode方法
@EqualsAndHashCode
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
Mapper 接口
1、BaseMapper 是 MyBatis-Plus 提供的模板 Mapper 接口
(1)包含了基本 CRUD 方法
(2)泛型为操作的实体类型
@Repository
public interface UserMapper extends BaseMapper<User> {
}
启动类
1、在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 接口所在的包
@SpringBootApplication
@MapperScan("扫描指定包路径下的Mapper接口")
public class MybatisplusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusApplication.class, args);
}
}
测试类
@SpringBootTest
public class MybatisPlusTest {
/*
IDEA在userMapper处报错,因为类是动态创建的,编译阶段找不到注入的对象
运行阶段程序可以正确的执行,为了避免报错,可以在Mapper接口上添加@Repository注解
*/
@Autowired
private UserMapper userMapper; //动态生成代理类注入
@Test
public void testSelectList(){
//通过条件构造器查询一个List集合,null表示没有查询条件,即查询所有
//List<User> list = userMapper.selectList(null);
userMapper.selectList(null).forEach(System.out::println);
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战