首页
统计
关于
Search
1
Sealos3.0离线部署K8s集群
1,079 阅读
2
类的加载
739 阅读
3
Spring Cloud OAuth2.0
725 阅读
4
SpringBoot自动装配原理
690 阅读
5
集合不安全问题
583 阅读
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
登录
Search
标签搜索
Java
CSS
mysql
RabbitMQ
JavaScript
Redis
JVM
Mybatis-Plus
Camunda
多线程
CSS3
Python
Spring Cloud
注解和反射
Activiti
工作流
SpringBoot
Mybatis
Spring
html5
蘇阿細
累计撰写
388
篇文章
累计收到
4
条评论
首页
栏目
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
页面
统计
关于
搜索到
13
篇与
的结果
2021-04-05
4.自动填充
自动填充数据库级别1.数据库新增字段,并设置2.实体类添加数据库新增的时间字段3.执行更新操作后查看结果代码级别1.删除数据库的默认值、自动更新操作2.实体类字段属性上增加相应的注解@TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.UPDATE) private Date updateTime;3.元数据处理器package com.sw.mybatisplus.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; /** * @Author suaxi * @Date 2021/4/5 11:14 * 元数据处理器 */ @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { //插入时填充策略 @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill"); this.setFieldValByName("createTime", new Date(), metaObject); this.setFieldValByName("updateTime", new Date(), metaObject); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill"); this.setFieldValByName("updateTime", new Date(), metaObject); } } 4.执行插入、更新测试后查看数据库
2021年04月05日
60 阅读
0 评论
0 点赞
2021-04-05
3.更新
更新@Test void update(){ User user = new User(); user.setId(10); user.setName("更新测试"); user.setAge(10); int result = userMapper.updateById(user); System.out.println(result); }自动完成动态sql的拼接
2021年04月05日
55 阅读
0 评论
0 点赞
2021-04-05
2.主键生成策略
主键生成策略ID_WORKER 全局唯一ID(默认)雪花算法:snowflake是Twitter开源的分布式ID生成算法,类型为long。其核心思想为:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit是机器ID),12bit作为毫秒内的流水号,最后一位是符号位,永远为0AUTO 主键自增在实体类ID主键上配置: @TableId(type = IdType.AUTO)同时数据库也许设置ID自增:IdType类型:public enum IdType { AUTO(0), //主键自增 NONE(1), //无 INPUT(2), //用户自行输入 ID_WORKER(3), //全局唯一(默认) UUID(4), //UUID ID_WORKER_STR(5); //分布式全局唯一ID注:mybatis-plus新版已不再推荐使用 ID_WORK
2021年04月05日
145 阅读
0 评论
0 点赞
2021-04-05
1.插入操作
CRUD实例测试1.新建数据库DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id) ); INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com');2.导入依赖尽量不要同时导入mybatis和mybatis-plus,可能存在版本差异的问题<!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency>3.插入pojopackage com.sw.mybatisplus.pojo; import lombok.Data; import java.io.Serializable; @Data public class User implements Serializable { private long id; private String name; private int age; private String email; } mapperpackage com.sw.mybatisplus.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sw.mybatisplus.pojo.User; import org.springframework.stereotype.Repository; /** * @Author suaxi * @Date 2021/4/4 14:46 */ @Repository public interface UserMapper extends BaseMapper<User> { } Junit单元测试package com.sw.mybatisplus; import com.sw.mybatisplus.mapper.UserMapper; import com.sw.mybatisplus.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; @SpringBootTest class MybatisPlusApplicationTests { @Autowired private UserMapper userMapper; @Test void contextLoads() { //此处的参数是一个Wrapper(条件构造器) List<User> userList = userMapper.selectList(null); userList.forEach(System.out::println); } } 控制台打印sql# 在application.yml配置文件中添加 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 或者 logging: level: com.xxx.xxx.mapper: debug插入@Test void insertTest(){ User user = new User(); user.setName("孙笑川"); user.setAge(33); user.setEmail("123321@qq.com"); int result = userMapper.insert(user); System.out.println(result); System.out.println(user); //插入时没有手动设置,但此处的打印结果自动回填了id的值 //User(id=0, name=孙笑川, age=33, email=123321@qq.com) }
2021年04月05日
41 阅读
0 评论
0 点赞
2021-04-05
MyBatis-Plus
MyBatis-Plus特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
2021年04月05日
155 阅读
0 评论
0 点赞
1
2