鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为。

示例如下:

DeptmentMapper接口定义:

package com.mybatis.dao;

import com.mybatis.bean.Department;

public interface DeptmentMapper {

public Department getDeptById(Integer id);

}

DeptmentMapper.xml文件定义:

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select id,dept_name departmentName from tbl_dept where id=#{id}

EmployeeMapper接口定义:

package com.mybatis.dao;

import com.mybatis.bean.Employee;

public interface EmployeeMapper {

public Employee getEmpByIdWithDept(Integer id);

}

EmployeeMapper.xml文件定义:

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select="com.mybatis.dao.DeptmentMapper.getDeptById"

column="d_id">

select * from tbl_employee where id=#{id}

测试代码:

package com.mybatis.demo;

import com.mybatis.bean.Department;

import com.mybatis.bean.Employee;

import com.mybatis.dao.DeptmentMapper;

import com.mybatis.dao.EmployeeMapper;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

import java.io.IOException;

import java.io.InputStream;

public class MyTest {

public SqlSessionFactory getSqlSessionFactory() throws IOException {

String resource = "mybatis-config.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

return new SqlSessionFactoryBuilder().build(inputStream);

}

@Test

public void testResultMap() throws IOException {

SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

SqlSession openSession = sqlSessionFactory.openSession(true);

try {

EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);

Employee girl = mapper.getEmpByIdWithDept(1);

System.out.println(girl.getDept());

Employee boy = mapper.getEmpByIdWithDept(7);

System.out.println(boy.getDept());

} finally {

openSession.close();

}

}

}

mybatis 鉴别其_Mybatis学习笔记9 - 鉴别器discriminator相关推荐

  1. mybatis trim标签_MyBatis学习笔记

    MyBatis开发文档: mybatis - MyBatis 3​mybatis.org mapper接口开发的四个规范: XxxMapper.xml配置文件的名称命名空间值必须是mapper接口的全 ...

  2. mybatis 入门([尚硅谷]_张晓飞_Mybatis 学习笔记一)

    目录 一.创建数据库 二.添加log4j日志 三.定义java类和配置xml 3.1 定义xml,xml 中的id作为操作sql的唯一标识 3.2 定义接口,接口方法作为操作sql 的唯一标识 一.创 ...

  3. 狂神说mysql笔记_Mybatis学习笔记(狂神说)

    简介 分享自写源码和笔记 配置用的 jdk13.0.2 (jdk1.7以上均可) Maven 3.6.3 MySQL 5.7 (mysql5.6以上均可) 1. 配置 pom.xml xmlns:xs ...

  4. SpringBoot和MyBatis集成案例(学习笔记)

    声明:本案例学习http://blog.csdn.net/je_ge,在此感谢je_ge提供的学习用的资料 1.项目目录结构 2.pom.xml的内容如下 <project xmlns=&quo ...

  5. mybatis 鉴别其_MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询

    MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询 白玉 IT哈哈 支持的 JDBC 类型 为了未来的参考,MyBatis 通过包含的 jdbcType 枚举型,支持下面的 ...

  6. 条件筛选([尚硅谷]_张晓飞_Mybatis 学习笔记五)

    目录 一.定义用户表 二.与数据库表对应的javabean 三.使用javabean对象作为查询条件 测试类 四.使用Map对象作为查询条件 五.mybatis的配置数据源 一.定义用户表 creat ...

  7. MyBatis学习笔记(二)根据配置文件优化

    上一篇:MyBatis学习笔记(一)完整查询数据库流程+增删改查 mybatis_config.xml文件中可以包含以下部分 本文接下来的优化都是针对于mybatis_config.xml文件,并且每 ...

  8. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  9. mybatis学习笔记(7)-输出映射

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...

最新文章

  1. JS写的不咋地的碰撞检测
  2. CommonsMultipartFile 转为 File 类型
  3. Linux配置示例:配置java环境变量
  4. 献给老师,我的编程之路
  5. 美团O2O排序解决方案——线上篇
  6. 在SAP Cloud Platform ABAP编程环境里打印系统变量
  7. 织梦本地调试运行PHP不显示图片,织梦CMS手机端不显示图片的原因及解决方法!...
  8. 可以查杀计算机病毒的软件,怎样彻底查杀计算机病毒
  9. Ubuntu常用软件安装,持续更新中。。。
  10. 搜索神器Android,网盘搜索神器
  11. android tips 8 | mystra,Mystra是什么意思
  12. 计算机毕业设计太难做不出来怎么办?
  13. android高德方向,Android高德地图填坑
  14. 【分治】剑指 Offer 33. 二叉搜索树的后序遍历序列
  15. SwitchyOmega插件安装
  16. ERNIE,ERNIE2.0,Transformer-XL,XLNET
  17. pickle.load()和pickle.dump()
  18. ADI DSP的JTAG设计规范(提供JTAG标准设计原理图)
  19. 金盾视频播放器拦截的软件关键词和进程信息
  20. 升序降序图标显示html,表格升序降序.html

热门文章

  1. XReport报表工具技术白皮书
  2. 车牌识别EasyPR(5)——文字定位
  3. php自动验证,ThinkPHP 自动验证及验证规则详解
  4. vue 悬浮按钮组件_如何搭建和发布一个 Vue 组件库
  5. php字符集转换,php字符集转换
  6. 怎样安装android系统版本,Android 12公测版Beta 1现已推出,教你如何安装
  7. c语言最短延时程序,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  8. bootstrap 简介
  9. HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
  10. Xcode6 管理provisioning profile