快速入门

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); 
    } 
}
posted @   半条咸鱼  阅读(60)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示