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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM