5.平凡之路-查询结果集简单处理

说在前面的话 : 命名空间暂时约定-持久化类(实体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();

            Map map =  sqlSession.selectOne(Skill.class.getName()+".getMap01", 2);

            System.out.println(map);
        } finally {
            MyBatisUtils.closeSqlSession(sqlSession);
        }
    }
}
  • 图解说明


    5.平凡之路-查询结果集简单处理_第1张图片
    结果集处理Map
  • 经典异常[重点,重点,重点]

5.平凡之路-查询结果集简单处理_第2张图片
映射文件或者核心配置文件错误

(2) 通过设置字段别名修改Map中的KEY值

  • 映射文件[关键代码]
   
  • Java测试代码
public class 处理结果集为Map类型_通过给字段取别名方式 {
    public static void main( String[] args ) {
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.getSqlSession();

            Map map =  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();

            Map map =  sqlSession.selectOne(Skill.class.getName()+".getMap03", 2);

            System.out.println(map);
        } finally {
            MyBatisUtils.closeSqlSession(sqlSession);
        }
    }

}
  • 图解说明


    5.平凡之路-查询结果集简单处理_第3张图片
    Map设置不同的KEY

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);
        }
    }

}
  • 图解说明


    5.平凡之路-查询结果集简单处理_第4张图片
    别名方式

(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);
        }
    }

}
  • 图解说明


    5.平凡之路-查询结果集简单处理_第5张图片
    resultMap标签解决方式

4.返回列表别名和resultMap标签处理

  • 映射文件
  

  

resultType 返回结果集处理的内置类型
resultMap 去找之前定义的resultMap标签的ID

  • Java测试代码
public class 处理结果集结合 {
    public static void main( String[] args ) {
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.getSqlSession();

            List> list01= sqlSession.selectList(Skill.class.getName()+".getSkillList01");
            List list02= sqlSession.selectList(Skill.class.getName()+".getSkillList02");

            System.out.println("list01:"+list01);
            System.out.println("list02:"+list02);
        } finally {
            MyBatisUtils.closeSqlSession(sqlSession);
        }
    }

}

因为我们知道要返回的是一个列表,所以我们使用的是selectList方法

  • 图解说明


    5.平凡之路-查询结果集简单处理_第6张图片
    返回列表

2.sql标签提取公共部分

  • 简单方式
  
   skill_id ,skill_name ,num
  
  
  • 动态别名方式
  
   ${vip}.skill_id ,${vip}.skill_name ,${vip}.num
  
  

sql标签不仅仅是处理字段,只要是公共的部分就可以提出来
可以查看官方文档

你可能感兴趣的:(5.平凡之路-查询结果集简单处理)