说在前面的话 : 命名空间暂时约定-持久化类(实体Bean)的类名的全路径 com.shxt.model.Skill
一 简单查询结果集处理
1.查询结果集处理为Map类型
(1) 字段作为Map中的KEY值
- 映射文件
- Java测试代码
public class 处理结果集为Map类型 { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapmap = sqlSession.selectOne(Skill.class.getName()+".getMap01", 2); System.out.println(map); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }}
- 图解说明
- 经典异常[重点,重点,重点]
(2) 通过设置字段别名修改Map中的KEY值
- 映射文件[关键代码]
- Java测试代码
public class 处理结果集为Map类型_通过给字段取别名方式 { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapmap = sqlSession.selectOne(Skill.class.getName()+".getMap02", 2); System.out.println(map); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }}
(3) 通过resultMap属性和resultMap标签组合,设置不同的KEY
- 映射文件
autoMapping="true" 默认值 按照字段进行映射,如果修改了后者覆盖前者
autoMapping="false" 设置哪些就映射哪些
- Java测试代码
public class 处理结果集为Map类型_通过resultMap标签处理结果集 { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapmap = sqlSession.selectOne(Skill.class.getName()+".getMap03", 2); System.out.println(map); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }}
- 图解说明
2.返回单一值
- 映射文件
返回一个字符串也是类似的 resultType="string"
- Java测试代码
public class 处理结果集返回一个整型 { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Integer count = sqlSession.selectOne(Skill.class.getName()+".getCountSkill"); System.out.println(count); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }}
3.返回自定义类型对象
(1) 通过设置别名方式
- 持久化类
public class Skill { private Integer skillId; private String skillName; private Integer num; //省略getter和setter方法}
- 映射文件
字段别名和类中的属性名保持一致
- 测试代码
public class 处理结果集为自定义类Skill { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Skill s = sqlSession.selectOne(Skill.class.getName()+".getSkill01", 2); System.out.println(s); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }}
- 图解说明
(2) resultMap属性和resultMap标签组合方式
- 映射文件
- Java测试代码
public class 处理结果集为自定义类Skill_resultMap标签处理 { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Skill s = sqlSession.selectOne(Skill.class.getName()+".getSkill02", 2); System.out.println(s); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }}
- 图解说明
4.返回列表别名和resultMap标签处理
- 映射文件
resultType 返回结果集处理的内置类型
resultMap 去找之前定义的resultMap标签的ID
- Java测试代码
public class 处理结果集结合 { public static void main( String[] args ) { SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); List
因为我们知道要返回的是一个列表,所以我们使用的是selectList方法
- 图解说明
2.sql标签提取公共部分
- 简单方式
skill_id ,skill_name ,num
- 动态别名方式
${vip}.skill_id ,${vip}.skill_name ,${vip}.num
sql标签不仅仅是处理字段,只要是公共的部分就可以提出来
可以查看官方文档