参考文献

什么是sql预编译

sql 预编译指的是数据库驱动在发送 sql 语句和参数给 DBMS 之前对 sql 语句进行编译,这样 DBMS 执行 sql 时,就不需要重新编译。
预编译阶段可以优化 sql 的执行。
预编译之后的 sql 多数情况下可以直接执行,DBMS 不需要再次编译,越复杂的sql,编译的复杂度将越大,预编译阶段可以合并多次操作为一个操作。

mybatis的好处

其几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集

{}与${}的区别:

#相当于对数据 加上 双引号,$相当于直接显示数据
#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。
$将传入的数据直接显示生成在sql中。如:order by u s e r i d user_id userid,如果传入的值是111,那么解析成sql时的值为order by 111, 如果传入的值是id,则解析成的sql为order by id.

#{} 就是编译好SQL语句再取值.
${} 就是取值以后再去编译SQL语句.

#{}最明显的优点就是防止sql注入,
这是由于${}在预编译之前就会被变量替换,这会存在sql注入问题
${ } 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换

在这里插入图片描述

什么时候必须用${}

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐