- 博客(2)
- 收藏
- 关注
原创 线程的生命周期(状态)
使当前线程让出CPU执行权保留执行资格,但让出时间不可设定,且不会释放锁资源。有可能CPU下次进行线程调度,还会让这个线程获得CPU时间片继续执行。⚠️在 ConcurrentHashMap中的 initTable() 初始化中,用到了 yield() 方法。因为ConcurrentHashMap可能会被多个线程初始化table,但初始化只需一个线程操作,且由于这个操作很快,如果让其他线程进入阻塞状态或者等待状态会造成上下文切换等相对大的开销。
2025-12-24 14:49:51
1234
原创 Mapper.xml文件的动态SQL语句中#{ }和${ }的区别
在Mybatis中,动态SQL是一种强大特性,能够根据【不同的输入参数】生成不同的SQL语句。结果只有第一页分页正常,之后页都会把之前的分页全部在本页展示(比如,第一页展示10条,第二页却展示了20条,第三页展示了30条…而在-- 之后的语句将作为注释,不起作用,这样在一条查询语句中偷偷的加了一个删除表数据的SQL,会对系统造成危害。Mybatis在对SQL语句进行预编译之前,会对SQL语句进行动态解析,解析为一个BoundSql对象。因为${ }在预编译之前已经被变量替换了,这会存在SQL注入问题。
2025-11-20 15:20:28
343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅