• MybatisPlus自带生成策略(id值)


    MybatisPlus自带生成策略(id值)

    基于这篇博客

    [整合MybatisPlus测试]

    user类

    package com.xiang.pojo;
    
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.util.Date;
    
    /**
     * Created by IntelliJ IDEA.
     * User: xiang
     * Date: 2021/10/21 2:50
     */
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
    //    @TableId(type = IdType.ID_WORKER) //数字类型的id使用,当类型为Long时默认使用,生成19位的Id值,
        @TableId(type = IdType.ID_WORKER_STR)//字符串类型的id使用,需要写明注解,生成19位的Id值
        //同时需要设置数据库的字段id的类型为Bigint,因为int的长度只有11位
        private Long id;
        private String username;
        private String sex;
        private int age;
        private Date birthday;
    }
    
    
    

    参考网址

    分布式系统唯一ID生成方案汇总

    测试类

    package com.xiang;
    
    import com.xiang.mapper.UserMapper;
    import com.xiang.pojo.User;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    import java.util.List;
    
    /**
     * Created by IntelliJ IDEA.
     * User: xiang
     * Date: 2021/10/21 16:02
     */
    @SpringBootTest
    public class GenerationStrategy {
        @Autowired
        UserMapper userMapper;
    
        @Test
        void intro() {
            User user = new User();
            user.setUsername("周某");
            user.setSex("男");
            int insert = userMapper.insert(user);
            if (insert > 0) {
                System.out.println("插入成功");
            } else {
                System.out.println("fail");
            }
            List<User> list = userMapper.selectList(null);
            for (User listUser : list) {
                System.out.println(listUser);
            }
        }
    }
    
    

    运行结果

    JDBC Connection [HikariProxyConnection@1979825302 wrapping com.mysql.cj.jdbc.ConnectionImpl@48a0c8aa] will not be managed by Spring
    ==>  Preparing: INSERT INTO user ( id, username, sex, age ) VALUES ( ?, ?, ?, ? )
    ==> Parameters: 1451098975287668738(Long), 周某(String), 男(String), 0(Integer)
    <==    Updates: 1
    Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@29a98d9f]
    插入成功
    JDBC Connection [HikariProxyConnection@1985280051 wrapping com.mysql.cj.jdbc.ConnectionImpl@48a0c8aa] will not be managed by Spring
    ==>  Preparing: SELECT id,username,sex,age,birthday FROM user
    ==> Parameters: 
    <==    Columns: id, username, sex, age, birthday
    <==        Row: 1, xiang, 男, 18, 2021-10-03
    <==        Row: 559, 小向, 男, 18, 2021-10-04
    <==        Row: 602, admin, 女, 18, 2021-10-20
    <==        Row: 603, testbox, 女, 18, 2021-10-02
    <==        Row: 604, 小一, 男, 18, 2021-10-16
    <==        Row: 605, 小二, 女, 18, null
    <==        Row: 607, 小四, 女, 21, null
    <==        Row: 609, 小五, 女, 0, null
    <==        Row: 1451097869404868609, 向某, 男, 0, null
    <==        Row: 1451098975287668738, 周某, 男, 0, null
    <==      Total: 10
    
  • 相关阅读:
    索引结构
    云时代基础设置自动化管理利器: Chef
    软件Scrum
    选择置换+败者树搞定外部排序
    selenium webdriver (python)2
    [置顶] javascript-基于对象or面向对象?
    4.7 阻止对某几列插入
    mysql数据损坏修复方法
    阿里云挂载数据盘
    Delphi 使用双缓冲解决图片切换时的闪烁问题 good
  • 原文地址:https://www.cnblogs.com/d534/p/15434149.html
Copyright © 2020-2023  润新知