- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 replace into的使用方法
在 MySQL 中,语句是一种用于插入数据的命令,它类似于,但具有不同的行为。具体来说,会首先尝试插入数据。如果插入操作导致主键或唯一键冲突,会删除现有记录并插入新记录。和都可以处理主键冲突问题,但是可以通过语句控制数据修改的粒度更细。和都会检查所有的主键和唯一索引,且不能指定使用哪一个索引。和都会对性能产生一定影响,特别是操作的数据量大的时候。
2024-05-23 15:17:58 522
原创 驱动领域设计(DDD)中聚合根、实体、值对象
在领域驱动设计(Domain-Driven Design,简称DDD)中,实体(Entity)、值对象(Value Object)和聚合根(Aggregate Root)是构成业务模型的核心概念,它们帮助开发者构建出与业务领域紧密相关的模型。下面将分别解释这些概念,并给出定义和示例。实体是拥有唯一标识和连续存在的对象。实体是具有唯一标识符(ID)的对象。即使两个实体的属性完全相同(无法通过几个属性的组合来确定唯一对象),只要它们的ID不同,它们也被视为不同的实体。
2024-05-09 10:13:42 462
原创 Springboot多数据源及事务实现方案
为了更灵活地控制数据源的选择,通常会定义一个或多个自定义注解(如在业务方法上使用这些注解来指明该方法应当使用的数据源。结合AOP,可以在方法执行前读取这些注解的值,据此动态切换数据源。 在多数据源的情况下,具体来说是在一个方法中既使用了数据源 A 又使用了数据源 B 的情况下,事务会失效,即无法实现数据源 A 和数据源 B 同时提交和回滚。 事务的具体原理不在本篇作过多的介绍(后面有时间就补一篇),本篇会对比集中实现多数据源事务的方案。
2024-04-25 10:32:19 956 2
原创 Springboot参数分组校验
Java API规范(JSR303)定义了Bean校验的标准,但没有提供实现。是对这个规范的实现,并增加了校验注解如@Email@Length等。是对的二次封装,用于支持spring mvc参数自动校验。本文基于 JDK21 和 springboot3.1.5 进行整理。
2024-03-14 10:00:21 675
原创 Spring 事件推送publishEvent
ApplicationContext.publishEvent 是 Spring 提供的解耦的一种方式,在 org.springframework.context 包下。如果项目规模较大,已经引入了 MQ、XxlJob 等中间件,可以使用中间件替代。默认是同步操作的,也就是说发布完之后需要等监听执行完毕才可以;异步需要单独开启,加 @Async 注解即可。事件中需要在构造方法中调用父类的构造方法,将事件源传入。
2024-01-18 13:51:19 740
原创 Spring 异步编程--@Async
Async顾名思义,异步处理。将复杂或耗时长的业务可以进行梳理归纳分为多线程去执行,@Async在使用上会更简单一些。@Async的默认线程池为。spring提供的默认的线程池为。CompletableFuture默认的线程池为。两者均不太满足正常项目的使用,所以使用自定义线程池。只需要实现AsyncConfigurer接口并重写相关方法即可进行自定义配置。import org/*** 自定义线程池*
2024-01-18 11:26:17 873
原创 CentOS8.0搭建 RockerMq
方式一:方式二:查询可安装 java 版本安装 java, 这里安装默认的查看可安装的 maven 版本安装 maven,这里默认校验安装是否成功:编译成功如下:该操作非必须,只是为了方便操作,以下是基于移动之后进行记录的。以下操作均基于编译打包之后的 bin 目录下进行。如果进行了 3.5 操作【移动打包内容】则 bin 目录:/usr/local/rocketmq/bin;如果没进行 3.5 操作【移动打包内容】则 bin 目录:/usr/local/rocketmq/rocketmq-all-5.0.
2022-07-04 10:01:45 249
原创 Java8Stream 流的使用
可以由数组或者集合创建,对流的操作分为两种: 的特性: 可以通过集合或者数组进行创建2. 使用方法用数组创建流3. 使用的静态方法:输出结果: 是顺序流,由主线程按顺序对流执行操作; 是并行流,内部以多线程并行执行的方式对流进行操作,但前提是流中的数据处理没有顺序要求。例如筛选集合中的奇数,两者的处理不同之处:由图可以看出,并行流类似于二分查找,如果流中的数据量足够大,并行流可以加快处理速度。除了直接创建并行流,还可以通过 把顺序流转换成并行流:三、Stream 的使用下面代码使用到的类
2022-07-01 17:51:47 212
原创 Java Doc--{@link} 和 @see 使用
在写 Java 代码时,我们可以写代码跳转的注释,我们可以通过【command+鼠标左键】实现跳转,常用的有 {@link} 和 @see。{@link} 前面带有注释仍然可以跳转。主要用法如上,完整路径为【包名.类名#方法名或者字段名】三、 @see@see 前面不可以带有注释, 否则不能跳转主要用法如上,完整路径为【包名.类名#方法名或者字段名】...
2022-06-22 14:22:12 5004 2
原创 Java POI 导入导出 Excel 的方式和区别
Java POI 导出 Excel 的方式和区别文章目录Java POI 导出 Excel 的方式和区别一、 3 种方式1. HSSFWorkbook2. XSSFWorkbook3. SXSSFWorkbook二、 产生 OOM 的原因三、 解决办法四、 项目地址一、 3 种方式1. HSSFWorkbook该方式针对的是 Excel2003 或之前的版本,扩展名为 .xls。该方式的缺陷是只能导出 65535 行数据,超过则会报错,因为此方式导出的数据不会超过 70000 行,所以基本不会发生
2021-05-31 17:29:50 374
原创 eclipse(sts)和Idea安装lombok插件
eclipse/sts&Idea安装lombok插件文章目录eclipse/sts&Idea安装lombok插件1. 下载jar包2. 切到lombok的下载目录,执行命令:java -jar lombok.jar在这里插入图片描述3. 选择要执行的.exe文件在这里插入图片描述4. 安装在这里插入图片描述5. 成功在这里插入图片描述6. 添加依赖7.IDEA安装lombok插件...
2019-12-03 20:19:23 559 2
原创 JSON和对象之间的转换(阿里fastjson)
JSON和对象之间的转换文章目录JSON和对象之间的转换1.引入阿里JSON(com.alibaba.fastjson)的pom依赖2.JSON和JSONObject的关系2-1. JSONObject继承了JSON3.JSON和JavaBean的简单转换3-1. JavaBean-->JSON3-2. JSON-->JSONObject3-3. JSON(JSONObject)--...
2019-11-26 20:31:27 1527 1
原创 前端FreeMarker框架遍历集合
前端FreeMarker框架遍历集合1.在pom文件中引入freemarker的依赖[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gamu7cYB-1571644093128)(D:\03笔记\03Typora笔记截图\freemarker遍历集合\03.png)]2.在控制器中用Model或者ModelAndView对象将参数传入到页面[外链图片转存失败,...
2019-11-06 13:51:25 510
转载 Java连续赋值操作的细节
对于一个连等型的表达式,其在不同位置相同的变量,会因为变量赋值顺序的不同,影响变量的值是否赋值成功,代码如下: public class Test { public static void main(String[] args) { int a=0,b=0; b+=a*=b+=(a=1)/(b=1); System.out...
2018-10-15 09:31:20 7520 4
转载 缺页中断算法(FIFO,LRU)
1. 缺页中断 在请求分页系统中,可以通过查询页表中的状态位来确定所要访问的页面是否存在于内存中。每当所要访问的页面不在内存时,会产生一次缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的一页,将其调入内存。 缺页本身是一种中断,与一般的中断一样,需要经过4个处理步骤: 1. 保护CPU现场 2. 分析中断原因 3. 转入缺页中断处理程序进行处理 ...
2018-09-19 09:30:04 14084 3
原创 Java基础
Java:面向对象的编程语言 分类: 1)J2SE JAVASE --桌面单机版程序 2)J2EE JAVAEE --web项目 3)J2ME JAVAME --嵌入式的手机程序 特点: 1)跨平台的(一次编写,处处运行) 原理: ...
2018-09-03 10:56:37 149
原创 Java数组的使用
数组:引用数据类型,引用类型的数据都存放在堆中(String是引用类型) 数组特点: 1)数据存放在堆中,同一个数组内的元素在一块连续的内存当中(可以通过下标对数组进行定位检索,所以查询效率很高) 2)数组大小是固定的 3)数组创建后会拥有默认值 数组的内存模型: 1)数组是存储多个相同类型变...
2018-09-03 10:55:24 147
原创 Java面向对象(类的封装,继承和多态)
面向对象:世间万物皆对象: 特性:封装 继承 多态Java回收机制回收的是堆中的垃圾类: 概念: 对一类事物的描述,引用类型,数据在堆中存储 静态性的特征描述:字段 动态性的行为描述:方法 对象(实例): 客观世界中真实存在的,某一类事物的某一个个体 对象的属性分配在堆内存中,但是对象名分配在栈内存中 ...
2018-09-03 10:51:50 247
原创 异常处理
输出: 标准输出:System.out 错误输出:System.err异常处理:运行时出现的错误 1)try..catch..finally: try{有可能出现异常的代码} catch(){出现异常时执行的代码} finally{有无错误都要执行的代码} try之后可以有多个catch,catch的顺序是越具体的类越写前面...
2018-08-28 19:19:51 140
原创 工具类(Object,String,包装类,Math,日期类)
工具类: Object:所有类的超类,唯一一个没有父类的类 常用方法: 1)equals(); 2)hashCode(); 3)toString(); String:不可变字符序列,造成内存浪费 StringBuffer:可变字符序列,节省内存开销 ...
2018-08-28 19:01:59 307
转载 字符串常量池
1、String 常量池 为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池。如果字符串已经存在池中,就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。 Note:常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包...
2018-08-28 18:51:11 310
原创 集合与泛型
Java中集合框架层次结构:Iterable接口: Collection接口: List接口: Iterator接口: ListIterator接口:Collection接口: List接口: ArrayList类: LinkedList类: Vector类: Stac...
2018-08-28 16:19:23 189
原创 文件、流、序列化
文件:File类 语法: 1)File 变量名 = new File(String pathname); 通过将给定路径名的字符串转换成抽象路径来创建 2)File 变量名 = new File(URI uri); 通过将给定File的uri转换成抽奖路径名来创建 3)File 变量名 ...
2018-08-28 15:25:54 361
原创 多线程
多线程: 进程:计算机在执行的程序的实体 线程:1个程序内部的顺序控制流 1个进程可以包含1个或多个线程,一个线程就是一个程序内部的一条执行线索 进程和线程的区别: 进程: 每个进程都有独立的代码和数据空间,进程的切换会有很大的开销 线程: 同一类线程共享代码和...
2018-08-28 11:38:34 150
原创 JDK1.8的新特性
jdk1.8新特性: Lambda表达式: Stream: Lambda表达式: 将函数当成参数传递给某个方法,或者把代码本身当作数据处理 书写方式: (数据类型 变量名,数据类型 变量名...)->{ ... return ;(可以不写) }或者: (变量名, 变量名,...)->{代码块}...
2018-08-28 11:35:44 155
原创 选择排序和冒泡排序(上浮法和下沉法)
**********************冒泡排序下沉法********************* int[] array = {18,25,7,36,13,2,89,63}; System.out.println("冒泡排序下沉法原序列:"); for ( int i : array ) { System.ou...
2018-08-09 18:51:46 3442
转载 IDEA快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Sp...
2018-08-07 19:03:01 218
原创 Oracle数据库中子查询
子查询:要加() 子查询可以出现在以下字句中: 1)from字句 2)where字句 3)having字句:当查询条件中有分组查询 分类: 1)嵌套子查询: 1-1)单行子查询:结果是单行单列 1-2)多行子查询:结果是多行单列 ...
2018-08-06 21:30:29 539
原创 Oracle数据库中集合运算
集合:并, 交, 差 集合运算是把两个或多个查询的结果集做并/交/差的集合运算,包含集合运算的查询称为复合查询 并集: UNION: 返回两个集合的并集,去掉重复数据,默认按返回结果集的第一列升序排列 使用规则: 1)多个查询语句所选择的列数和列...
2018-08-06 21:29:48 938
原创 Oracle数据库中数据操作和事务控制以及锁
表数据的操作(DML): 插入: 修改: 删除: 合并:大数据操作的时候,数据仓库 插入:使用values只能插入一行数据 插入空值: 1)不写 2)插入空串 3)null 插入日期: 1)按照Oracle标准日期格式插入,'dd-mm月-yyyy' ...
2018-08-06 21:29:11 781
原创 Oracle数据库中分页功能
分页: rowid: 1)是一个伪列,由系统自动产生 2)能唯一标识每一条数据库行记录的物理地址,通过rowid能快速定位到一条行记录 rownum:伪列,一行的行号(从1开始计),数据结果集输出时添加行号 注意点: 1)rownum不能与>,>=(除了1),between..and一起使用...
2018-08-06 21:28:25 266
原创 Oracle数据库中创建和维护表
DDL:数据定义语言 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由create,alter与drop三个语法所组成 Oracle数据库对象命名原则: 1)必须由字母开始,长度在1-30字符之间 2)名字中只能包含A-Z,a-z,0-9,_,$,# 3)同一个Oracle服务器用户所拥有的对象名字不能重复 4)名字不能为Oracl...
2018-08-06 21:27:52 325
原创 Oracle数据库中约束和视图
约束:constraint 概念: 约束是定义在表上的一种强制规则 作用: 当为某个表定义约束后,对该表所做的所有SQL操作都必须满足约束的规则要求,否则将操作失败 命名规则:表名_列名_约束类型 默认约束名:SYS_Cn,n是一个唯一的整数 约束分类: 1)主键约束(pk):primar...
2018-08-06 21:27:10 983
原创 Oracle数据库中序列,索引和同义词
序列: 概念: 序列是按照一定规则能自动增加/减少数字的一种数据库对象 作用: 通常可以使用序列自动地生成主键键,用于主键自增 操作: 1)创建: 语法: CREATE SEQUENCE [schema.] sequencename ...
2018-08-06 21:25:27 408
原创 JavaWeb项目中关于RequestMapping的映射问题
在控制器(Controller)中设置RequestMapping,它是会和jsp页面中的请求进行自动映射,比如表单的action以及<a></a>标签的href,都是请求.一个jsp页面中可以有多个请求.表单中的action或者<a></a>标签中的href都是映射到控制器中,根据设置的映射名称进行映射,可以写全名,也可以只写设置的...
2018-07-25 19:28:55 2345
原创 JavaWeb项目中关于jsp页面和Controller控制器中参数传递的理解
当从控制器要跳转到jsp界面时,如果要给jsp页面传递参数的话,需要用model.addAttribute("键名",值)或者request.addAttribute("键名",值)方法来进行传递.参数值是一个键值对,在jsp页面中通过${键名}可以获得该参数的值传递参数之间参数名是通过容器自动绑定的(请求中携带的参数名是和控制器中方法的形参名进行对应的,与addAttribut...
2018-07-25 19:28:00 3284
原创 配置Maven环境的步骤
--前提Maven已下载解压1.在setting(apache-maven-3.5.3\conf中)文件中配置本地仓库:<localRepository>F:\03_mavenRepository\m2</localRepository>,路径名随意 2.在setting文件中配置阿里云镜像:选一个好用的, mirrorOf不要配置为*, 否则会影...
2018-07-25 18:59:26 201
原创 Mybaties的简易操作步骤
1.创建lib文件夹,将所需要的jar包拷贝到此文件夹下,然后将lib文件夹的jar包导入到项目中。2.创建并配置一些辅助文件(日志文件和数据库的连接文件)。 日志文件:通常来说都是在项目下创建Source Folder文件夹并命名为resources,在resources目录下创建一个新的file文件,命名为 log4j.properties。 数据库文件:通常来说都是在项目下创建Source ...
2018-06-27 21:33:34 258
原创 Java中JTable常用属性设置小结
Java中Table表头属性设置/** * 设置表单的表头高度 * @param table */ public static void setTableHeadHeight(JTable table, int height){ table.getTableHeader().setPreferredSize(new Dimen
2017-07-03 19:50:09 5339
转载 Jtable表头属性设置
/** * 设置表单的表头高度 * @param table */ public static void setTableHeadHeight(JTable table, int height){ table.getTableHeader().setPreferredSize(new Dimension(1, height));
2017-07-03 15:44:07 1856
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人