首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyBatis-Plus 乐观锁 防止超卖、逻辑删除、自动填充、Id自增

介绍 这次就主要讲乐观锁、逻辑删除、自动填充。这几项在项目是用的非常多的。 先讲一下主要应用 之后再讲理论和实现。...自动填充: 我之前看阿里的那个规范的时候 有看到就是说在数据库里面建立每一张表 都需要有创建时间和修改时间 所以MP就提供自动填充的功能,帮助自定设置这些字段的值,提升开发效率,代码也会显得特别优雅...COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名', `age` int(11) NULL DEFAULT NULL COMMENT '年龄...注解填充字段 @TableField(.. fill = FieldFill.INSERT) 生成器策略部分也可以配置!...这里需要标记为填充字段 @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill

1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java核心技术第一篇之数据库基础

    服务 密码修改完成 Mysql重置管理密码的操作 Mysql 使用过程中,难免会忘记管理密码,肿么办?...: drop database 数据库名; 5.查看当前正在使用的数据库: select database(); 6.切换数据库: use 数据库名; 10.表操作的相关语句: 1.创建表...: create table 表名( 字段名1 数据类型[长度] [约束], 字段名2 数据类型[长度] [约束], … 字段名n 数据类型[长度] [约束] ); 例如创建一个学员信息表...中的char表示:可变的字符串; 在MySQL中char和varchar的区别: 1.char:定长字符串:例如定义字段为:char(5):表示最多存储5个字符,如果不足5个字符,剩下的用空字符填充...>"abcd " 2.varchar:不定长字符串:例如定义字段为:varchar(5):表示最多存储5个字符,如果不足5个字符,不填充空字符。

    58520

    mysql简单基础

    : 关系键 以命令行的形式操作数据库 windows+r cmd 进入终端 输出mysql -uroot -p 连接数据库,输入你的mysql密码,会出现如下,表示连接成功。...mysql的sql语句都有; 查看数据库:show databases; 查看数据库版本:select version(); 显示当前时间:select now(); 创建一个数据库:create database...你show databases; 就会看到 我们刚刚创建的数据库python_data。 但是还记得我们用图形化工具时创建数据库指定了编码utf8吗?...我们以创建table1为例,id(编号),name(姓名),age(年龄),hight(身高),sex(性别), classid (班级id)。...取出多个条件的(名字等于张三,年龄等于18): select * from where name = "张三" and age=18; 取出name等于张三或者年龄为18的 select * from

    90030

    MyBatis Plus 常用 API 全套教程,看完没有不懂的

    连接数据库 创建application.yml spring: profiles: active: dev datasource: # 驱动不同 mysql 5 com.mysql.jdbc.Driver...看到id会自动填充。数据库插入的id的默认值为:全局的唯一id 主键生成策略 1)主键自增 1、实体类字段上 @TableId(type = IdType.AUTO) 2、数据库id字段设置为自增!...图片 自动填充 创建时间、修改时间!这两个字段操作都是自动化完成的,我们不希望手动更新!阿里巴巴开发手册:所有的数据库表都要配置上gmt_create、gmt_modified!而且需要自动化!...2、实体类字段属性上需要增加注解 // 字段添加填充内容 @TableField(fill = FieldFill.INSERT) private Date gmt_create...图片 条件构造器(Wrapper) isNotNull .gt @Test void contextLoads() { // 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于

    1.1K10

    Mybatis-plus常用API全套教程,看完没有不懂的

    前言 官网: https://baomidou.com/ 创建数据库 数据库名为mybatis_plus 创建表 创建user表 DROP TABLE IF EXISTS user; CREATE TABLE...连接数据库 创建application.yml spring:   profiles:     active: dev   datasource: # 驱动不同 mysql 5  com.mysql.jdbc.Driver...数据库插入的id的默认值为:全局的唯一id 主键生成策略 1)主键自增 1、实体类字段上 @TableId(type = IdType.AUTO) 2、数据库id字段设置为自增!...int i = userMapper.updateById(user);         System.out.println(i);     } 自动填充 创建时间、修改时间!...2、实体类字段属性上需要增加注解     // 字段添加填充内容     @TableField(fill = FieldFill.INSERT)     private Date gmt_create

    71340

    Mybatis-plus常用API全套教程,看完没有不懂的

    p=5133 前言 官网: https://baomidou.com/ 创建数据库 数据库名为mybatis_plus 创建表 创建user表 DROP TABLE IF EXISTS user;...连接数据库 创建application.yml spring: profiles: active: dev datasource: # 驱动不同 mysql 5 com.mysql.jdbc.Driver...看到id会自动填充。数据库插入的id的默认值为:全局的唯一id 主键生成策略 1)主键自增 1、实体类字段上 @TableId(type = IdType.AUTO) 2、数据库id字段设置为自增!...图片 自动填充 创建时间、修改时间!这两个字段操作都是自动化完成的,我们不希望手动更新!阿里巴巴开发手册:所有的数据库表都要配置上gmt_create、gmt_modified!...2、实体类字段属性上需要增加注解 // 字段添加填充内容 @TableField(fill = FieldFill.INSERT) private Date gmt_create

    45520

    Mybatis-plus常用API全套教程,看完没有不懂的

    连接数据库 创建application.yml spring: profiles: active: dev datasource: # 驱动不同 mysql 5 com.mysql.jdbc.Driver...看到id会自动填充。数据库插入的id的默认值为:全局的唯一id 主键生成策略 1)主键自增 1、实体类字段上 @TableId(type = IdType.AUTO) 2、数据库id字段设置为自增!...图片 自动填充 创建时间、修改时间!这两个字段操作都是自动化完成的,我们不希望手动更新!阿里巴巴开发手册:所有的数据库表都要配置上gmt_create、gmt_modified!而且需要自动化!...2、实体类字段属性上需要增加注解 // 字段添加填充内容 @TableField(fill = FieldFill.INSERT) private Date gmt_create...图片 条件构造器(Wrapper) isNotNull .gt @Test void contextLoads() { // 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于

    41610

    MySQL基础:SQL分类DDL、DML、DQL、DCL;函数、约束、多表查询、事务、并发事务四大问题、事务隔离级别——脏写、脏读、不可重复读、幻读

    年龄字段 -- 不会出现负数, 而且人的年龄不会太大age tinyint unsigned2)....而且在查询的过程中,可能还会涉及到条件、排序、分页等操作。...【特殊:mysql中group by语句及其之后的语句可以使用select中的别名,因为mysql对其进行了扩充,其他数据库不支持】验证#查询年龄大于15的员工姓名、年龄,并根据年龄进行升序排序。...,用字符串pad对str的左边进行填充,达到n个字符串长度 RPAD(str,n,pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 TRIM(str)...为了解决多事务并发问题,数据库才设计了事务隔离机制、MVCC多版本隔离机制、锁机制,用一整套机制来解决多事务并发问题。

    1.1K20

    MySQL 数据库基础知识(系统化一篇入门)

    2.1、SQL的优点 1、简单易学,具有很强的操作性 2、绝大多数重要的数据库管理系统均支持SQL 3、高度非过程化;用SQL操作数据库时大部分的工作由DBMS自动完成 2.2、SQL的分类 1、DDL...ZEROFILL 0填充的 不足位数的用0来填充 , 如int(3),5则为005 Auto_InCrement 通常理解为自增,自动在上一条记录的基础上默认+1...字段名 from 数据表名 order by stuid desc; 7.4.1、使用distinct去除重复的字段 去除重复的年龄[每个年龄只显示一条记录] MySQL命令格式: select distinct...需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。...八、MySQL创建用户 MySQL创建用户格式: 授权用户可以管理所有的库和表 GRANT ALL ON *.* TO "用户名"@"主机" IDENTIFIED BY "密码"; 授权用仅仅可以管理指定的库中的全部的表

    5.1K60

    Baidu Comate Web在线出题能力测试——MySQL出题能力

    问题1: 我正在学习MySQL,当前基本掌握了MySQL的操作,你能出一些题目让我测评一下我的学习情况吗? 返回结果: 先是给了思考过程,后来给了参考资料,这个参考资料是CSDN平台的博主文章。...题目1:数据表操作 创建一个名为students的数据表,包含以下字段:id(主键,自增)、name(学生姓名)、age(学生年龄)、gender(学生性别)。...SELECT name, age FROM students; 查询年龄最小的学生的姓名和年龄。...的基本操作,包括数据表创建、插入、查询、聚合、条件查询、连接查询和子查询等。...总结 这里出了5个题目,到了子查询停止的,后面的存储过程,触发器什么的都没有提问,问的也就是初级的掌握情况了,还是比较听话的,对应的题目也不是很难,很适合初学者。

    7600

    深入浅出JVM(一)之Hotspot虚拟机中的对象

    深入浅出JVM(一)之Hotspot虚拟机中的对象本篇文章思维导图如下: 图片对象的创建对象的创建可以分为五个步骤:检查类加载,分配内存,初始化零值,设置对象头,执行实例构造器类加载检查HotSpot...(当对象满足不会逃逸条件除了能够优化在栈上分配内存还会带来锁消除,标量替换等优化...)尝试该对象能不能在栈上分配内存如果不符合1,且该对象特别的大,比如内存超过了JVM设置的大对象的值就直接在老年代上为它分配内存如果这个对象不大...,类似缓冲区哪个线程要分配内存就在那个线程的缓冲区上分配,只有缓冲区满了,不够了才使用乐观的同步策略(CAS+失败重试)保证分配内存的原子性 图片在并发情况下分配内存是不安全的(正在给A对象分配内存,指针还未修改...:对象头,实例数据,对齐填充对象头包括两类信息(8Byte + 4Byte)Mark Word:用于存储该对象自身运行时数据(该对象的哈希码信息,GC信息:分代年龄,锁信息:状态标志等)类型指针(对象指向它类型元数据的指针...,默认子类较小的字段可以插入父类字段间的空隙以此来节约空间(+XX:CompactFields)对齐填充 HotSpot要求对象起始地址必须是8字节整倍数 所以任何对象的大小都必须是8字节的整倍,如果对象实例数据部分未到达

    26841

    制作mysql大数据表并验证覆盖索引的查询效率

    写个java程序来填充随机数据是第一选择,但还要动用IDE太麻烦,尝试直接使用mysql的函数来实现。...4 索引对查询性能的影响 设计一个简单的查询:所有赵姓用户且手机号139开头,平均年龄是多少?...4.2 单字段索引-name 首先在name字段创建一个单字段索引 mysql>ALTER TABLE `user` ADD INDEX `idx_user_name` (`name`) USING...4.3 单字段索引-mobile 为了测试方便,先删除name字段的索引,再创建一个mobile字段索引 mysql> ALTER TABLE `user` DROP INDEX `idx_user_name...从这个时间,我们应该能够猜出mysql的过滤数据的过程。mysql执行where过滤时仅仅通过索引即可完成,然后根据索引中的user_id去数据页面读取相应的age值出来做平均。

    2.7K20

    深度学习之主流数据库 | MySQL基础

    刚刚装好的mysql的配置文件地址在/etc/mysql/my.cnf,用任意一个文本文件打开他,复制下面这几句到文件中去(如下图)。...同样的,删除这个cat数据库也是类似的写法。 3、查看数据库信息和使用数据库 经过上面的创建的过程,你应该创建了一个数据库了,那么怎么查看当前用户拥有权限的数据库呢?就是show系列的命令啦。...VARCHAR(M) - 可变长度的字符串是以长度为1到255之间字符数(高版本的MySQL超过255); 例如: VARCHAR(25). 创建VARCHAR类型字段时,必须定义长度。...例如,如果想要字段包含“A”或“B”或“C”,那么可以定义为ENUM为 ENUM(“A”,“B”,“C”)也只有这些值(或NULL)才能用来填充这个字段。...DROP TABLE table_name ; 举例子时间: 需要创建一个表,表上记录的是班上学生的一些信息,学号,姓名,年龄,出生日期,身高,期末成绩这几项。

    1.9K60
    领券