1.2在mybatis中,${} 和 #{} 的区别是什么
#{} 是占位符,预编译处理:会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
${}是字符串替换:就是把${}替换成变量的值。
使用#{}可以有效的防止SQL注入,提高系统安全性。
1.7如何获取自动生成的(主)键值?
insert 标签中 中加入 usegeneratedkeys=”true” keyproperty=”id”
1.4在mybatis中,resultType和ResultMap的区别是什么
如果数据库结果集中的列名和要封装实体的属性名完全一致的话用resultType 属性
如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用resultMap 属性
通过resultMap手动建立对象关系映射,resultMap要配置一下表和类的一一对应关系。
1.5在Mybatis中你知道的动态SQL的标签有哪些?作用分别是什么?
1.
where标签可以用来做动态拼接查询条件
if标签不满足条件的时候,不用显示的声明类型where 1 = 1这种无用的条件foreach标签可以把传入的集合对象进行遍历,然后把每一项的内容作为参数传到sql语句中. include可以把大量的重复代码整理起来,当使用的时候直接include即可,减少重复代码的编写; 适用于更新中,当匹配某个条件后,才会对该字段进行跟新操作
if标签不满足条件的时候,会自动去掉多余的逗号
