- 博客(19)
- 收藏
- 关注
原创 Java使用MyBatis实现动态选择主备表功能
首先,创建一个Mapper接口,用于定义数据库操作方法。// 其他数据库操作方法...通过以上步骤,可以在Java项目中使用MyBatis框架实现动态选择主表或备表进行数据库操作的功能。通过传递一个布尔值参数useBackup来控制是否使用备表,并在Mapper XML配置文件中使用标签来根据参数值动态选择表名。这样,可以灵活地切换数据源,以满足不同的业务需求。
2024-11-21 17:13:39
239
原创 不同编码方式影响
综上所述,选择合适的编码方式对于确保数据的完整性、准确性、安全性和兼容性至关重要。在选择编码方式时,应根据具体的应用场景和需求进行权衡。例如,在处理多语言文本时,UTF-8可能是一个理想的选择;而在需要确保数据传输安全性的情况下,可能会考虑使用Base64或MD5等算法。UTF-8编码能够支持多种语言和字符集,包括中文、日文、韩文等,这使得它在国际化应用中非常受欢迎。其他编码方式如GBK则主要针对中文字符进行优化。
2024-11-01 16:56:57
356
原创 接口和抽象类的区分和应用场景
总的来说,在设计您的类和系统时,如果您的焦点是对某一系列操作的约束和协议,而不关心实现细节,则优先选择接口;如果您已经在设计一组密切相关的对象,它们共享一些实现代码或属性,但同时需要一些公共行为是未定义的或者空白的,则选择抽象类分层可能更加合适。此外,在一些编程语言(如Java 8+)中,接口现在可以包含默认方法实现,使得接口和抽象类的界限变得相对模绿,你可能更多地会基于设计哲学和团队习惯来选择它们。
2024-06-07 16:27:27
264
原创 Java Stream的使用
然后,你对这个数据源执行一系列操作,这些操作可以是中间操作(如 filter, map, sorted 等)或者终端操作(如 collect, forEach, reduce 等)。Java Stream API 非常强大,有很多功能和操作可以使用,比如 flatMap、distinct、limit、peek 等。正确地利用 Streams 可以编写出简洁、高效和易于维护的代码。通过 Java Stream API,你可以对集合进行复杂的查询和数据处理,而无需明确地管理迭代数据集合的过程。
2024-06-07 15:41:41
130
原创 Collectors.counting()用法
是 Java 8 引入的一个静态方法,它位于 java.util.stream.Collectors 类中。此方法用于创建一个收集器(Collector),该收集器的功能是计算流(Stream)中的元素数量。这是一个非常实用的方法,尤其是在对流进行聚合操作时,比如统计满足条件的元素数量。
2024-05-08 15:40:24
527
原创 使用groupingBy和counting组合来对一个List对象根据某个属性进行分组计算
在这个例子中,groupingBy(Person::getCity) 根据每个Person对象的city属性进行分组,然后 Collectors.counting() 对每个组内的元素进行计数。最终,cityPopulation 是一个 Map<String, Long>,其中键是城市名称,值是对应城市的人口(即具有该城市的Person对象数量)。在Java 8中,你可以使用groupingBy和counting组合来对一个List对象根据某个属性进行分组并计算每个组内的元素数量。
2024-05-08 15:36:52
443
原创 curl使用记录
v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。-i 参数可以显示 http response 的头信息,连同网页代码一起。-I 参数则只显示 http response 的头信息。-X POST 请求方式,不加默认GET。
2022-11-14 15:00:50
235
原创 数据表清空数据
– 1.新建临时表create table tc_transhippoint_info_v1_temp like tc_transhippoint_info_v1 ;– 2.重命名旧表做备份alter table tc_transhippoint_info_v1 rename to tc_transhippoint_info_v1_delete_20211021;– 3.修改临时表名为表tc_transhippoint_info_v1alter table tc_transhippoint_inf
2021-11-29 11:49:31
1187
原创 idea中某一个java类变灰了,显示为灰色图标如何恢复
问题:开发过程中发现之前原来正常蓝色C图标的java文件,图标突然变成了灰色,内容也全灰了,如图文件后缀都出来了。解决办法:点击idea左上角FIle->Settings 找到Editor -> File Types寻找所有上图所示的灰色图标,发现在“File type auto-detected by file content”中找到了被置灰的文件 ,点击 右上角"—"删除。点击 Apply之后恢复正常识别格式。 应该之前误点了之类造成的。...
2021-08-20 11:27:23
8202
1
原创 log4j2配置文件log4j2.xml详解
<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="60"> <!-- 变量配置 --> <Properties> <Property name="log_path">./logs</Property> </Properties> <!-- appender配置 --> <A
2021-07-20 14:32:44
4883
原创 比较当前时间是否在某个时间段 HH:mm
1.转化为String,使用String.compareTo() SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); java.util.Date now = new java.util.Date (); System.out.println( sdf.format(now) ); System.out.println(sdf.format(now).compareTo("11:45")); System.out.println( sdf.f
2021-06-22 12:06:26
188
原创 JAVA AES加解密工具类
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;import org.sl.
2021-06-04 13:42:02
112
原创 Comparable & Comparator
java.lang.Comparable和java.util.Comparator是java提供的两个可以用来指导排序的接口。ComparableComparable的用法需要待排序的类直接实现Comparable接口,同时通过在类中进行方法定义x.compareTo(y)来比较大小。 public interface Comparable<T> { public int compareTo(T o); }Compartor在List或数组中的对象如果没有实现Com
2021-05-31 23:44:19
116
原创 记一次生产超时问题处理
问题场景:生产出现偶发性异常报错“网络连接错误”,app的请求日志id,后台查不到 对应请求,且查询生产后台日志未发现报错请求。问题查找:怀疑是网关服务注册问题,导致部分请求超时,查找网关对应服务注册的ip列表,对比发现有一批新的ip,运维定位为容灾环境ip(之前未开启容灾环境),运维下载容灾环境日志,发现出现对应接口超时的日志,原因为容灾环境接口未开通防火墙导致到容灾环境的流量超时。问题反思:开容灾环境应提前确认1.所有配置信息对应的开墙,代理 ,白名单等信息2.提前对接好日志查询,方便研发
2021-01-11 11:21:44
226
原创 Java基础-对象和方法
一、对象对象实例化过程:Dog d1 = new Dog();1.在栈内存中建立指向新对象的引用变量d12.在堆内存中分配用于存储对象d1所需要的内存空间3.将堆内存空间的参考地址赋值给d1匿名对象:只开辟了堆内存空间,而没有栈内存指向的对象特点:1.没有栈内存指向2.只能使用一次,就会变成无法寻找的垃圾对象,会被GC回收对象的比较==:比较两个对象的内存地址值(引用地址)是否相同equals():比较两个对象的内容是否一致堆内存和栈内存的区别栈(stack) 是由编译器自
2020-12-29 18:33:33
416
原创 匿名内部类
匿名内部类:代码简洁,可以同时声明和实例化https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html1.While local classes are class declarations, anonymous classes are expressions, which means that you define the class in another expression. The following e
2020-09-16 11:04:37
93
原创 Java正则表达式处理字符串
java的正则表达式是由java.util.regex的Pattern和Matcher类实现的。Pattern对象表示经编译的正则表达式。静态的compile( )方法负责将表示正则表达式的字符串编译成Pattern对象。获取Matcher对象只要给Pattern的matcher( )方法传一个字符串。group()方法 Pattern pattern = Pattern.compile("(([0-9]+)([A-Z]+))"); Matcher matcher = pattern.match
2020-07-23 16:11:47
374
原创 mysql存储过程定时删除数据
drop PROCEDURE if EXISTS `sp_delete_tb_push_message_data`;delimiter ;;CREATE PROCEDURE `sp_delete_tb_push_message_data`()BEGINDECLARE v_id int;DECLARE stopflag int;DECLARE v_num int;DECLARE cursor_id cursor for select id from tb_push_message
2020-07-22 11:30:26
562
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人