博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5.平凡之路-查询结果集简单处理
阅读量:5944 次
发布时间:2019-06-19

本文共 4849 字,大约阅读时间需要 16 分钟。

说在前面的话 : 命名空间暂时约定-持久化类(实体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); } }}
  • 图解说明
    结果集处理Map
  • 经典异常[重点,重点,重点]

映射文件或者核心配置文件错误

(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); } }}
  • 图解说明
    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);        }    }}
  • 图解说明
    别名方式

(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);        }    }}
  • 图解说明
    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方法

  • 图解说明
    返回列表

2.sql标签提取公共部分

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

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

可以查看官方文档

转载地址:http://ayzxx.baihongyu.com/

你可能感兴趣的文章
codevs 1105 过河
查看>>
2744 养鱼喂妹纸
查看>>
Arcgis Server Manager发布ArcGISTiledMapServiceLayer服务
查看>>
bzoj1874: [BeiJing2009 WinterCamp]取石子游戏
查看>>
python核心-类-1
查看>>
【php】
查看>>
关于存session,cookie还是数据库或者memcache的优劣,部分网上抄录
查看>>
链表原理
查看>>
springboot springcloud 热部署
查看>>
微软职位内部推荐-SENIOR SOFTWARE ENGINEER
查看>>
浏览器兼容性问题
查看>>
unp #9 (reading notes) (Unix Domain)
查看>>
树莓派无线网上网
查看>>
测试警示名言
查看>>
Alpha 冲刺报告(6/10)
查看>>
RocketMQ 4.5.1 双主双从异步复制环境搭建
查看>>
idea springboot jrebel hotreloaded
查看>>
领域驱动设计:软件核心复杂性应对之道
查看>>
第七周作业
查看>>
redis单机版安装
查看>>