1.resultType和resultMap
Mapper.xml文件的顶级元素的子元素
resultType,如果实体类中的属性与表中的字段名相同,用resultType方便,会自动映射。如果表中的字段名与实体类的属性名不一致,可以用resultMap将字段名与属性名做一个对应关系。resultMap还需要将查询结果映射在实体类对象中。
resultMap可以实现将查询结果映射为复杂类型的实体类,比如在查询结果映射对象中包括实体类和list实现一对一查询和一对多查询
2.动态sql
通过mybatis提供的各种标签方法实现sql动态拼接
if标签
如果是这种写法,在sex为空时,sql语句变成select *from user where and username=?会出现sql语法错误
where标签
where标签可以去掉 sql语句中的前end,解决单用if的缺点
sql片段
sql 片段用来提取重复的SQL语句
foreach
foreach标签用于遍历,collection需要遍历的集合名,item遍历的项目,与#{}中相同即可,separator指定遍历元素之间的分隔符,open 在前面加sql语句,close在后面添加sql语句
一对一关联
3.spring和mybatis整合
整合的是思路
1.SqlSessionFactory对象应该交给Spring并且是单例的
2.从spring容器中直接获取mapper的代理对象
3.数据库的连接以及连接池事务管理都交给spring去管理