在mybatis中,${} 和 #{} 的区别是什么
${}:底层用的是statement,有sql注入的风险
#{}:底层用的是preparestatement,没有sql注入的风险
如何获取自动生成的(主)键值?
在mybatis中,resultType和ResultMap的区别是什么
resultType:查询返回的结果列名与实体类的属性名完全一致,则用resultType
resultMap:查询返回的结果类名与实体类中的属性名不完全一致,则需要用resultMap为表和实体类建立一一对应的映射关系
在Mybatis中你知道的动态SQL的标签有哪些?作用分别是什么?
:判断其test中的结果为true,再把标签内的sql动态拼接上
:去除sql语句中多余的where and or
:去除sql语句中多余的set和逗号
:sql语句中需要多选一的情况下使用,类似java中的switch
:sql语句中需要多选一的情况下配合choose使用,类似java中的case
:sql语句中需要多选一的情况下配合choose使用,类似java中的default
:遍历传入的集合对象,把每一项内容作为参数传到sql语句中
:引用 标签的内容
:where和set都可以通过trim去实现,其中有prefix和prefixOverrides两个方法
:将可复用的内容抽取出来,通过include引入