zoukankan      html  css  js  c++  java
  • SpringBoot ---- MyBatis Plus 入门

    配置文件

    • pom.xml
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- MySQL 驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- lomok 简化 Java 代码 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- MyBatis Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    
    • application.yml
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
        username: root
        password: root
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 测试用表结构及数据
    /*
     Navicat Premium Data Transfer
    
     Source Server         : mysql57
     Source Server Type    : MySQL
     Source Server Version : 50728
     Source Host           : localhost:3306
     Source Schema         : test
    
     Target Server Type    : MySQL
     Target Server Version : 50728
     File Encoding         : 65001
    
     Date: 24/02/2020 14:51:03
    */
    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for t_user
    -- ----------------------------
    DROP TABLE IF EXISTS `t_user`;
    CREATE TABLE `t_user`  (
      `id` bigint(20) NOT NULL,
      `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      `age` int(2) NOT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    -- ----------------------------
    -- Records of t_user
    -- ----------------------------
    INSERT INTO `t_user` VALUES (1, 'Jeson', 2);
    INSERT INTO `t_user` VALUES (2, 'Jack', 3);
    

    编写代码

    • 编写实体类 User
    /**
     * Data 注解提供类的get、set、equals、hashCode、canEqual、toString方法
     * AllArgsConstructor 提供全参构造
     * NoArgsConstructor 提供无参构造
     * TableName("t_user") 指定实体类对应表名为 "t_user"
     * @author Jeson
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @TableName("t_user")
    public class User {
        /**
         * TableId 注解指定该属性对应表中的主键 id, type 指定主键生成策略
         * TableField 指定该属性对应表中字段名字(在名字不一致或下划线转驼峰命名无法对应时使用)
         */
        @TableId(value = "id", type = IdType.ASSIGN_ID)
        private Long userId;
        @TableField("name")
        private String username;
        private Integer age;
    }
    
    • 编写 DAO 层 UserMapper
    public interface UserMapper extends BaseMapper<User> {
    }
    
    • 编写测试类
    @SpringBootTest
    class CurdTests {
    
        @Autowired
        private UserMapper userMapper;
    
        @Test
        void selectAll() {
            System.out.println("----- selectAll method test ------");
            List<User> userList = userMapper.selectList(null);
            userList.forEach(System.out::println);
        }
    
        @Test
        void insert() {
            System.out.println("----- insert method test -----");
            int rows = userMapper.insert(new User(null, "testNmae", 11));
            System.out.println(rows);
        }
    
        @Test
        void update() {
            System.out.println("----- update method test -----");
            int rows = userMapper.updateById(new User(1231590206946033665L, "testName2", 10));
            System.out.println(rows);
        }
    
        @Test
        void delete() {
            System.out.println("----- delete method test -----");
            int rows = userMapper.deleteById(1231590206946033665L);
            System.out.println(rows);
        }
    }
    
    • 简单使用 MyBatis Plus 对数据库进行了 CURD 操作,MyBatis Plus 还有大量使用功能,详情参考官方文档
  • 相关阅读:
    WPF之长短
    MFC程序和Win32程序的关系
    .NET Framework/CLR之长短
    常用软件
    经典推荐.Net面试法宝
    socket编程原理
    常用开发工具
    Get和Post方法的区别
    MAC IP等相关
    Datagrid为什么不自动换行显
  • 原文地址:https://www.cnblogs.com/qq188380780/p/12357036.html
Copyright © 2011-2022 走看看