zoukankan      html  css  js  c++  java
  • MyBatis-Plus快速入门及使用

    一、MyBatis-Plus入门开发及配置

    1、MyBatis-Plus简介

    MyBatis-Plus(简称:MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

    MyBatis-Plus易于学习,官网提供了基于SpringBoot的中文文档,社区活跃,版本迭代快速。

    MyBatis-Plus官方文档:baomidou.com/guide/,可作为日…

    2、基于SpringBoot项目集成MyBatis-Plus

    可以基于IDEA的Spring Initializr进行SpringBoot项目的创建,或者移步至Boot官网构建一个简单的web starter项目:start.spring.io/

    ①导入MyBatis-Plus相关的依赖包、数据库驱动、lombok插件包:

    pom.xml文件配置

    <dependencies>
        <!--数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--mybatis-plus:版本3.0.5-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    复制代码

    ②配置数据库驱动、日志级别

    application.properties配置

    #mysql5 驱动不同,默认驱动:com.mysql.jdbc.Driver
    spring.datasource.username=root
    spring.datasource.password=admin
    spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus_0312?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    #mysql8 驱动不同:com.mysql.cj.jdbc.Driver、需要增加时区的配置:serverTimezone=GMT%2B8,mysql8的驱动向下兼容mysql5
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    #配置日志
    mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    复制代码

    3、入门Hello World进行数据库操作

    基于官网示例来构建数据库表单及POJO数据类:baomidou.com/guide/quick…

    MybatisPlusApplication启动类:

    @SpringBootApplication
    //配置Mapper接口类扫描
    @MapperScan("com.fengye.mapper")
    //配置Spring Bean注解扫描
    @ComponentScan(basePackages = "com.fengye.mapper")
    public class MybatisPlusApplication {
        public static void main(String[] args) {
            SpringApplication.run(MybatisPlusApplication.class, args);
        }
    }
    复制代码

    UserMapper类:

    @Repository //持久层注解,表示该类交给Springboot管理
    public interface UserMapper extends BaseMapper<User> {
    }
    复制代码

    User类:

    @Data
    public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
    }
    复制代码

    基础CRUD操作:

    @SpringBootTest
    class MybatisPlusApplicationTests {
    
        @Autowired  //需要配置SpringBoot包扫描,否则此处使用@Autowired会报警告
        //@Resource
        private UserMapper userMapper;
    
        @Test
        void testSelect() {
            System.out.println(("----- selectAll method test ------"));
            List<User> userList = userMapper.selectList(null);
            Assert.assertEquals(5, userList.size());
            userList.forEach(System.out::println);
        }
    
        @Test
        void testInsert(){
            System.out.println("----- insert method test ------");
            User user = new User();
            user.setName("枫夜爱学习");
            user.setAge(20);
            user.setEmail("241337663@qq.com");
            int insertId = userMapper.insert(user);
            System.out.println(insertId);
        }
    
        @Test
        void testUpdate(){
            System.out.println("----- update method test ------");
            User user = new User();
            user.setId(1370382950972436481L);
            user.setName("苞米豆最爱");
            user.setAge(4);
            user.setEmail("baomidou@github.com");
            int updateId = userMapper.updateById(user);
            System.out.println(updateId);
            System.out.println(user);
        }
    
        @Test
        void testDelete(){
            System.out.println("----- delete method test ------");
            int deleteId = userMapper.deleteById(1370386235364118529L);
            System.out.println(deleteId);
        }
    }
    复制代码

    4、主键生成策略配置

    主键生成策略:

    使用@TableId(type = IdType.AUTO,value = "id") ,value属性值当实体类字段名和数据库一致时可以不写,这里的value指的是数据库字段名称,type的类型有以下几种:

    public enum IdType {
        AUTO(0),   //Id自增操作
        NONE(1),  //未设置主键
        INPUT(2),  //手动输入,需要自己setID值
        ID_WORKER(3),  //默认的全局唯一id
        UUID(4),   //全局唯一id  uuid
        ID_WORKER_STR(5);  //ID_WORKER的字符串表示法
        ...
    }
    复制代码

    目前MyBatis-Plus官方文档建议的id主键设置为:@TableId(type = IdType.INPUT)

  • 相关阅读:
    WCF后续之旅(3): WCF Service Mode Layer 的中枢—Dispatcher
    .Net 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)
    我的WCF之旅(13):创建基于MSMQ的Responsive Service
    .net程序集强名称签名实践
    WCF后续之旅(8):通过WCF Extension 实现与MS Enterprise Library Policy Injection Application Block 的集成
    .Net 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等) 2
    WCF后续之旅(6): 通过WCF Extension实现Context信息的传递
    SilverlightCatchWcfError
    WCF后续之旅(7):通过WCF Extension实现和Enterprise Library Unity Container的集成
    WCF后续之旅(4):WCF Extension Point 概览
  • 原文地址:https://www.cnblogs.com/lyck/p/14406259.html
Copyright © 2011-2022 走看看