- 博客(40)
- 收藏
- 关注
原创 SpringBoot整合Liquibase
Liquibase是一个开源的数据库管理工具,可以帮助开发人员管理和跟踪数据库变更。它可以与各种关系型数据库和NoSQL数据库一起使用,并提供多种数据库任务自动化功能,例如数据库迁移、版本控制和监控。Liquibase还提供了一个Web界面,可以方便地管理和跟踪数据库变更。它支持Java、Python、Ruby等多种语言,可以轻松地集成到现有的开发环境中。Liquibase可以帮助开发人员更加高效地管理数据库,并减少由于数据库变更而导致的错误。
2024-08-15 23:46:50
1546
1
原创 SpringBoot-Validate优雅的实现参数校验,详细用法~
import com/*** @author ly (个人博客:https://www.cnblogs.com/ybbit)* @tags 喜欢就去努力的争取@NotBlank(message = "name 姓名不能为空") private String name;@NotNull(message = "age 年龄不能为空") @Min(value = 0 , message = "年龄不能小于0") private Integer age;
2023-12-12 00:58:07
1792
原创 Mybatis动态SQL
动态SQL能灵活的发挥SQL强大的功能、方便的解决一些其它方法难以解决的问题。相信使用过动态SQL的人都能体会到它带来的便利,然而动态SQL有时候在执行性能 (效率)上面不如静态SQL,而且使用不恰当,往往会在安全方面存在隐患 (SQL 注入式攻击)。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。有时候,我们不想用到所有的查询条件,只想选择其中的一个,查询条件有一个满足即可,使用 choose 标签可以解决此类问题,类似于 Java 的 switch 语句。查询一个班的多个学生。
2023-09-21 22:57:14
186
原创 Mybatis-Flex之QueryWrapper
自定义操作符,让实体属性值通过and|or…进行连接SQLSELECT` id `,` age `,FROMWHEREMF/*** 自定义操作符*/@Test。
2023-09-01 20:21:22
2092
2
原创 Mybatis-Flex之增、删、改
BaseMapper 的接口提供了 deleteById、deleteBatchByIds、deleteByMap、deleteByQuery 方法,用于删除数据;BaseMapper 的接口提供了 update、updateByMap、updateByQuery 方法,用于更新数据;BaseMapper 的接口提供了 insert 和 insertBatch 方法,用于新增数据;
2023-08-05 15:44:19
1910
原创 Mybatis-Flex之基础搭建
MyBatis-Flex 通过独特的架构,没有任何 MyBatis 拦截器、在 SQL 执行的过程中,没有任何的 SQL Parse,因此会带来指数级的性能增长。MyBatis-Flex 提供了非常灵活的 QueryWrapper,支持关联查询、多表查询、多主键、逻辑删除、乐观锁更新、数据填充、数据脱敏、等等…总而言之,MyBatis-Flex 能够极大地提高我们的开发效率和开发体验,让我们有更多的时间专注于自己的事情。亮点 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。
2023-08-05 15:42:54
863
原创 使用axios发送请求的几种方式
前面我们使用的是axios的默认配置项下面我们手动创建axios实例,并指定相关配置项,覆盖默认的配置项config配置项如下名称含义baseUrl将自动加载url前面headers请求头,类型为简单对象params跟在url后面的参数,类型为简单的对象或URLSearchParamsdata请求体,类型有简单对象、FromData、URLSearchParams、File等跨域时是否携带Cookie等凭证,默认为false响应类型,默认为json} });
2023-05-24 22:15:33
5248
原创 12、GO语言入门-
数组元素可以通过索引 (位置) 来读取 (或者修改),索引从0开始第一个元素索引为0,第二个索引为 1,以此类推。数组的下标取值范围是从0开始,到长度减1。Go语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。值类型:理解为存储的数值本身将数据传递给其他的变量,传递的是数据的副本(备份)例如:int,float,string,bool,array。引用类型:理解为存储的数据的内存地址。
2023-05-11 22:12:08
98
原创 MybatisPlus条件查询方法全解
例如:我想按照姓名升序,员工编号降序查询员工信息mysqlMP/*** 排序操作: 自定义升、降序* 参数解释:* param1: 满足condition为true的情况,才会拼接条件* param2: 是否升序 true:升序 false:降序* param3: 排序字段* <p>* 排序字段是可以为多个的MP/*** 自定义查询条件MP/*** 无视优化规则直接拼接到 sql 的最后。
2023-04-30 14:59:10
12297
原创 Docker高级
pull一个centos镜像进入容器我们去执行vim命令,可以发现没有vim这个命令Docker中的虚悬镜像(dangling image)是指没有被任何Docker容器或镜像所依赖的镜像。当我们构建新的镜像或者删除现有的容器或镜像时,可能会产生一些虚悬镜像。虚悬镜像不会占据太多磁盘空间,但是会干扰镜像管理和容器部署。通过docker images命令可以查看所有的本地镜像,其中包括虚悬镜像。
2023-04-29 12:00:00
491
3
原创 CompletableFuture进阶
也叫计算密集型,此时,系统运行时大部分的状况是CPU占用率近乎100%,I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU 使用率很高。而join() 方法抛出运行时异常,程序可以不处理。测试代码时,电脑配置是4核8线程,而我们创建的线程池中线程数最少也是10个,所以,每个线程负责一个任务( 耗时1s ),总体来说,处理10个任务总共需要约1秒。如果你的任务是CPU密集型的,使用比处理器更多的线程是没有意义的,所以选择ParallelStream ,因为它不需要创建线程池,更容易使用。
2023-04-22 21:53:35
268
原创 CompletableFuture入门
是可以让程序并行( 也可能是并发 )运行的一种手段,其可以让程序中的一个工作单元作为异步任务与主线程分开独立运行,并且在异步任务运行结束后,会通知主线程它的运行结果或者失败原因,毫无疑问,一个异步任务其实就是开启一个线程来完成的,使用异步编程可以提高应用程序的性能和响应能力等。如果我们只是想从CompletableFuture的链式操作得到一个完成的通知,甚至都不使用上一步链式操作的结果,那么 CompletableFuture.thenRun() 会是你最佳的选择,它需要一个Runnable并返回。
2023-04-21 21:07:21
98
原创 4、GO语言入门-数据类型
2.语法:使用双引号"abc"、“hello”、"A"也可以使用。号称统一了全世界UTF-8,UTF-16,UTF-32…1.概念:多个byte的集合,理解为一个字符序列。ASCII(美国标准信息交换码)语法格式:Type(value)中国的编码表:加入了中文。计算机本质只识别0和1。gbk,兼容ASCII。
2023-04-21 20:58:48
71
原创 1、GO语言入门-环境准备及第一个go程序开发
golang中文网:https://studygolang.com/dl或者:https://go.dev/dl/
2023-03-17 09:52:38
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人