- 博客(5)
- 收藏
- 关注
原创 浅谈一下MyBatis的#{param}和${param}
但是在讲#{param}和${param}和以前,我要先来谈谈Mysql的预编译技术,我们都知道,当我们的SQL语句发送给MySQL服务器后,MySQL会对我们的SQL语句进行校验、解析等操作。其实我们在使用的时候只要记住,使用#{}时会在参数的整体加上单引号,然后思考一下什么情况加上单引号会出错就好了,然后就是能用#{}的地方尽量都用#{},可以防止SQL注入,同时也会使用到预编译在性能上来说也会比${}更好。又或者如果对应的参数是 "1;最终会变成下面的情况,不能提供MySQL的语法校验,最终会报错。
2024-08-29 11:12:20
689
原创 浅谈一下ThreadLocal
虽然说每个线程访问到的ThreadLocal对象是同一个,但是在同一个ThreadLocal对象中会给每一个线程维护自己单独的ThreadLocalMap,然后ThreadLocalMap中会维护一个Entry数组,然后将当前ThreadLocal对象的弱引用作为key,需要存储的值作为value。存到Entry中,为什么可以保证线程安全呢,就是因为每个线程的ThreadLocalMap都不一样,所以在进行get、set时操作的Entry数组也不一样,自然就做到了不同线程直接的隔离,从而保证了线程安全。
2024-07-24 18:56:37
251
1
原创 利用Redisson封装一个限流工具并解析限流原理
以下是封装的限流工具的tryAcquire方法,执行逻辑是这样的,首先redissonClient会根据key去判断是否已经存在对应的限流器RRateLimiter对象,如果不存在则先创建一个,OVERALL参数表示整个系统的请求总量限流,还有一个PER_CLIENT的RateType指的是对不同的客户端单独统计限流。ARGV[1]指的是请求的令牌数量,ARGV[2]是当前时间戳,ARGV[3]是一个随机数。具体的限流操作是通过调用下面的这段lua脚本实现的,感兴趣的可以看一下试着理解一下。
2024-07-19 16:09:11
933
原创 如何在docker中启动nacos并配置mysql
db.url.0=jdbc:mysql://改成自己的:3306/nacos_config?中找到并执行对应版本的创建表结构的 SQL 脚本。db.password=改成自己的。正式启动Nacos并设置环境变量。db.user=改成自己的。
2024-07-14 17:05:43
1201
原创 怎么固定vm虚拟机ip地址不变
变化的原因:在配置文件/etc/sysconfig/network-scripts/ifcfg-ens33中,在一开始虚拟机设置的IP地址是dhcp是动态地址,所以才会一直变化,现在就要改成static再自己设置一个固定的ipaddr就可以了。注意DNS1和GATEWAY,是根据你自己配置的ipIP地址决定的,不是和我一样的,我之前配置的IP地址是192.168.101.136,所以DNS1和GATEWAY就是192.168.101.2。在这里你会发现,你的虚拟机ping不通外网了,还需要继续操作。
2024-07-11 22:35:36
757
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人