资讯专栏INFORMATION COLUMN

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

lowett / 2278人阅读

摘要:说在前面的话命名空间暂时约定持久化类实体的类名的全路径一简单查询结果集处理查询结果集处理为类型字段作为中的值映射文件命名空间唯一的不能重复结果集处理后变成类型当你传递的是一个简单的数据类型的形参的时候那么你的值

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

图解说明

经典异常[重点,重点,重点]

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

}

图解说明

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> 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方法

图解说明

2.sql标签提取公共部分

简单方式

  
   skill_id ,skill_name ,num
  
  

动态别名方式

  
   ${vip}.skill_id ,${vip}.skill_name ,${vip}.num
  
  

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70314.html

相关文章

  • 6.平凡之路-单条件模糊查询

    摘要:并且如果使用那么必须要指明值使用简单的数据类型不好使使用接口代理模式的注解也可以 属于MyBatis的核心之一,这里面的坑比较多,大家多多看看吧 一 模糊查询的三种方式介绍 我会使用resultMap处理结果集数据 1.死数据的模糊查询 映射文件 SELECT * FROM...

    tuantuan 评论0 收藏0
  • 7.平凡之路-动态SQL语句

    摘要:附转义字符第二种方法因为这个是格式的,所以不允许出现类似这样的字符,但是都可以使用符号进行说明,将此类符号不进行解析你的可以写成这个文件示例代码 动态SQL语句是核心之一,这里我们通过几个示例来演示 一 多条件查询专题 1.通过恒等式完成动态SQL语句 涉及到if标签 ...

    时飞 评论0 收藏0
  • 3.平凡之路-传统模式添加操作

    摘要:回顾上节课我们完成了的环境搭建核心配置文件映射文件的执行过程如何执行定制的语句我们测试的是死的数据那么下面我们使用容器传递动态的数据添加操作传递数据专题通过传递数据映射文件代码传递参数数据的类型或者提供额内置类型映射中的获取对应的值 回顾: 上节课我们完成了MyBatis的环境搭建核心配置文件映射文件API的执行过程如何执行定制的SQL语句 我们测试的是死的数据,那么下面我们使用容器传...

    cucumber 评论0 收藏0
  • 前端要给力 — 平凡之路

    摘要:平凡之路前端发展了十几年,现在几乎到达顶峰的速度了,近两年推出的框架层出不穷,早已不是一统江湖了。模板和数据分离也好,状态和表现分离也好,我越来越体会到分是为了合这条平凡之路,还会频繁的发展和融合下去。 一直想总结下自己摸打滚爬的前端经历,3年,从一个极讨厌前端的人,变成一个吃前端饭碗的人。没有人带过我,跌跌撞撞的缓慢前进,但我很喜欢分享,喜欢一起进步,这会是我以后一直乐意做的事情。 ...

    WelliJhon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<