- 博客(11)
- 收藏
- 关注
原创 MyBatis实现增删改查&优化
1.mybatis不写代码替换 配置文件(mapper.xml配置文件)2.自动封装结果集3、Mybatis支持查询数据缓存//插入inset into t_user values(…)【不能加;//删除//更新//查询。
2025-01-13 01:51:37
331
原创 Myabtis源码分析四-缓存模块分析 ,装饰模式的使用
BlockingCache 是阻塞版本的缓存装饰器,这个装饰器通过 ConcurrentHashMap 对锁的粒度 进行了控制,提高加锁后系统代码运行的效率(注:缓存雪崩的问题可以使用细粒度锁的方 式提升锁性能):实现 Component 接口,组件实现类就是被装饰器 装饰的原始对象,新功能或者附加功能都是通过装饰器添加到该类的对象上的。:装饰器模式将功能切分成一个个独立的装饰器,在运行期可以根据需要动态的 添加功能,甚至对添加的新功能进行自由的组合;= null) {//获取数据成功的,要释放锁。
2025-01-13 01:44:08
244
原创 Flink CDC实时同步PG数据库_flink cdc pg
/ 日期格式转换时区@Override// 1. 创建一个JSONObject用来存放最终封装好的数据// 2. 解析主键// 3. 解析值//将数据封装到JSONObject中架构名 看是否需要//将数据发送至下游val = null;return val;return val;@Override。
2025-01-11 23:40:49
986
原创 C语言 宏 assert()_#define assert(y)
assert()宏接受一个整形表达式参数。如果表达式的值为假,assert()宏就会调用_assert函数在标准错误流中打印一条错误信息,并调用abort()(abort()函数的原型在stdlib.h头文件中)函数终止程序。当我们认为已经排除了程序的bug时,就可以把宏定义#define NDEBUG写在包含assert.h位置前面。小知识:__cdecl是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈。
2025-01-11 19:14:54
659
原创 c段web应用信息扫描工具(Cwebscanner)
python Cwebscan.py 11.txt -p 80,443 -p 指定端口,不指定则会扫描常见web端口。
2025-01-11 19:11:13
127
原创 Android关于Canvas你所知道的和不知道的一切
**绘制文字*/canvas.drawText(“张风捷特烈–Toly”, 200, 300, mRedPaint);无聊的代码终于敲完了,进入正题。
2025-01-11 10:35:51
462
原创 Android使用DownloadManager实现文件下载
下载完成,系统会发出广播,通过注册广播监听者可以监听到下载完成。下载会返回一个进程ID。通过ID可以需要下载。广播的Action为。
2025-01-11 10:32:10
121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人