• 从零集成mybatis-plus


    Mybatis-Plus特性:

    1. 无侵入,即引入它不会对现有工程产生影响。
    2. 损耗小,启动就会自动注入基本的CRUD,内置通用Mapper、Service等,基本能满足大部分需求。
    3. 支持主键自动生成,其中包括分布式唯一ID生成器Sequence,内置代码生成器,采用代码或者maven插件可快速生成Mapper、Service、Controller层代码。
    4. 内置分页插件,无需自己计算,且支持多种数据库,还内置性能分析插件,可打印SQL语句以及执行时间,便于慢SQL查询及优化。

    框架结构

    从零开始使用Mybatis-Plus(基于SpringBoot)

    1. 使用IDE新建一个SpingBoot工程,添加相关依赖(以MySQL为例):
    1. <parent>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-parentartifactId>
    4. <version>2.7.5version>
    5. <relativePath/>
    6. parent>
    7. <groupId>com.brevitygroupId>
    8. <artifactId>mpartifactId>
    9. <version>0.0.1-SNAPSHOTversion>
    10. <name>mpname>
    11. <description>Mybatis-Plus Demodescription>
    12. <properties>
    13. <java.version>1.8java.version>
    14. properties>
    15. <dependencies>
    16. <dependency>
    17. <groupId>org.springframework.bootgroupId>
    18. <artifactId>spring-boot-starterartifactId>
    19. dependency>
    20. <dependency>
    21. <groupId>org.springframework.bootgroupId>
    22. <artifactId>spring-boot-starter-testartifactId>
    23. <scope>testscope>
    24. dependency>
    25. <dependency>
    26. <groupId>com.baomidougroupId>
    27. <artifactId>mybatis-plus-boot-starterartifactId>
    28. <version>3.5.2version>
    29. dependency>
    30. <dependency>
    31. <groupId>org.projectlombokgroupId>
    32. <artifactId>lombokartifactId>
    33. <optional>trueoptional>
    34. dependency>
    35. <dependency>
    36. <groupId>mysqlgroupId>
    37. <artifactId>mysql-connector-javaartifactId>
    38. <scope>runtimescope>
    39. dependency>
    40. <dependency>
    41. <groupId>junitgroupId>
    42. <artifactId>junitartifactId>
    43. dependency>
    44. dependencies>

    新建数据库mp,创建user表,插入了10条数据,SQL如下:

    1. DROP TABLE IF EXISTS user;
    2. CREATE TABLE user
    3. (
    4. id BIGINT(20) NOT NULL COMMENT '主键ID',
    5. name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    6. age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    7. email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    8. PRIMARY KEY (id)
    9. );
    10. DELETE FROM user;
    11. INSERT INTO `mp`.`user` (`id`, `name`, `age`, `email`) VALUES
    12. (1, 'Tom', 18, 'Tom@mp.com'),
    13. (2, 'Jack', 20, 'Jack@mp.com'),
    14. (3, 'Brevity', 28, 'Brevity@mp.com'),
    15. (4, 'Brevity_520', 22, 'Brevity_520@mp.com'),
    16. (5, 'Billie', 24, 'Billie@mp.com'),
    17. (6, 'Jone', 18, 'Jone@mp.com'),
    18. (7, 'Jack', 20, 'Jack@mp.com'),
    19. (8, 'John', 28, 'John@mp.com'),
    20. (9, 'Sandys', 21, 'Sandys@mp.com'),
    21. (10, 'Bill', 24, 'Bill@mp.com');

    application.properties配置文件中添加数据库配置,具体内容如下所示:

    1. spring.datasource.url=jdbc:mysql://localhost:3306/mp?serverTimezone=Asia/Shanghai
    2. spring.datasource.username=root
    3. spring.datasource.password=root

    在SpringBoot启动类中添加@MapperScan注解,用来扫描Mapper文件夹,如下所示:

    1. @SpringBootApplication
    2. @MapperScan("com.brevity.mp.mapper")
    3. public class MpApplication {
    4. public static void main(String[] args) {
    5. SpringApplication.run(MpApplication.class, args);
    6. }
    7. }

    编写User实体类以及UserMapper接口:

    1. @Data // Lombok注解
    2. public class User implements Serializable {
    3. private static final long SerialVersionUID = 1L;
    4. private Long id;
    5. private String name;
    6. private Integer age;
    7. private String email;
    8. }
    9. public interface UserMapper extends BaseMapper {
    10. }

    编写测试类开始测试代码:

    1. @SpringBootTest
    2. class MpApplicationTests {
    3. @Autowired
    4. private UserMapper userMapper;
    5. @Test
    6. void testMp() {
    7. System.err.println("-------select method--------");
    8. List userList = userMapper.selectList(null);
    9. Assert.assertEquals(10, userList.size());
    10. userList.forEach(System.out::println);
    11. }
    12. }

    至此,入门代码已经编写完毕,且测试成功,可以看到,没有编写任何xml文件就实现了查询,仅需要添加maven依赖,配置扫描注解即可,这就是它的强大之处之一。

  • 相关阅读:
    微服务架构必备技术栈:万变不离其宗的奥义!
    一个综合资产收集和漏洞扫描工具
    河南工程学院2022级新生周赛(五)题解
    2-6:Http请求头知识点详解
    射频与麦克斯韦方程组
    springboot物流配货管理系统java
    探索现代办公应用系统架构:构建高效、可扩展的工作平台
    JQuery快速入门
    希尔排序原理
    SecureCRT 使用
  • 原文地址:https://blog.csdn.net/Brevity6/article/details/127945147