#{}
是预编译处理,${}
是字符串替换。2. 当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定pojo
<resultMap>
来映射字段名和实体类属性名的一一对应的关系.3. 模糊查询like语句该怎么写
4. 通常一个Xml映射文件,都会写一个Dao接口与之对应, Dao的工作原理,是否可以重载
5. Mybatis是如何进行分页的,分页插件实现的原理
6. Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签
<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>
加上动态sql的标签,比如where|set|foreach|if|choose|when|otherwise<sql>
为sql片段,<include>
引入sql片段7. Mybatis动态sql是做什么的?都有哪些动态sql?简述一下动态sql的执行原理
8. Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式
9. Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别。
10. Mybatis是否支持延迟加载
11. Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复
12. 如何进行批处理
13. Mybatis都有哪些Executor执行器?它们之间的区别是什么
14. Mybatis中如何指定使用哪一种Executor执行器
15. Mybatis映射文件中,如果A标签通过include引用了B标签的内容,位置问题
16. 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里
17. 如何获取自动生成的(主)键值
usegeneratedkeys
为true18. 在mapper中如何传递多个参数
19. Mybatis对象关联实例:
在单表查询中,属性名和数据库相同的字段可以省略,多表不可省略,省略则为空
// 一对一
<resultMap type="Orders" id="orders">
<result column="id" property="id"/>
<association property="user" javaType="User">
//关联另一张表
<id column="id" property="id"/> // id
<result column="name" property="name"></result> // 属性 即查询出来显示的名字
</association>
</resultMap>
<select id="onemany" resultMap="orders">
select u.id ,o.number,o.dic,u.name from orders o left JOIN user u on o.user_id=u.id
</select>
// 一对多
<resultMap type="User" id="user">
<id column="id" property="id"/>
<result column="name" property="name"/>
<!-- 一对多 -->
<collection property="list2" ofType="Orders"> // ofType : 每个属性的类型
<id column="oid" property="id"/> //需要设置id,如果两个对象属性相同,则会视为一条记录
<result column="number" property="number"/>
</collection>
</resultMap>
<select id="selectUserList" resultMap="user">
select u.id,o.id as oid,o.number,o.dic,u.name from user u left JOIN orders o on o.user_id=u.id
</select>
20. resultType resultMap的区别
21. Map 直接#{key}就可以取得对应的值