工程目录:

一、@Results映射
Client.java

package client;import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.Employee;
import domain.UserMapper;public class Client {public static void main(String args[]) throws IOException {InputStream in=null;SqlSessionFactory factory=null;SqlSession sqlSession=null;try {in = Resources.getResourceAsStream("mybatis-config.xml");}catch(IOException e) {e.printStackTrace();}try {factory = new SqlSessionFactoryBuilder().build(in);sqlSession = factory.openSession();        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);List<Employee> list = userMapper.selectEmpByEmpId(1);for(Employee emp:list)System.out.println(emp.getDeptId()+" "+emp.getEmpId()+" "+emp.getName());sqlSession.commit();}catch(Exception e) {e.printStackTrace();if(sqlSession!=null) {sqlSession.rollback();}}finally {if(sqlSession!=null) {sqlSession.close();}}}
}

Department.java

package domain;public class Department {private int deptId;private String deptName;public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}
}

Employee.java

package domain;public class Employee {private int empId;private String name;private int deptId;public int getEmpId() {return empId;}public void setEmpId(int empId) {this.empId = empId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}
}

domain.UserMapper.java

package domain;import java.util.List;
import org.apache.ibatis.annotations.*;public interface UserMapper {@Select("select * from employee where empId=#{empId}")@Results({@Result(id=true,column="empId",property="empId"),@Result(column="name",property="name"),@Result(column="deptId",property="deptId")})public List<Employee> selectEmpByEmpId(int empId);
}

mapper.UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="domain.UserMapper">
</mapper>

Employee表:

查询结果:

二、@ResultMap映射,当要重复使用这个 resultMap时,可用@ResultMap注解在各个需要的接口方法上引用它
Client.java

package client;import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.Employee;
import domain.EmpMapper;public class Client {public static void main(String args[]) throws IOException {InputStream in=null;SqlSessionFactory factory=null;SqlSession sqlSession=null;try {in = Resources.getResourceAsStream("mybatis-config.xml");}catch(IOException e) {e.printStackTrace();}try {factory = new SqlSessionFactoryBuilder().build(in);factory.getConfiguration().addMapper(EmpMapper.class);sqlSession = factory.openSession();       EmpMapper userMapper=sqlSession.getMapper(EmpMapper.class);List<Employee> list = userMapper.selectEmpByEmpId(1);for(Employee emp:list)System.out.println(emp.getDeptId()+" "+emp.getEmpId()+" "+emp.getName());sqlSession.commit();}catch(Exception e) {e.printStackTrace();if(sqlSession!=null) {sqlSession.rollback();}}finally {if(sqlSession!=null) {sqlSession.close();}}}
}

domain.EmpMapper.java

package domain;import java.util.List;
import org.apache.ibatis.annotations.*;public interface EmpMapper {@Select("select * from employee where empId=#{empId}")@ResultMap("mapper.UserMapper.empResultMap")public List<Employee> selectEmpByEmpId(int empId);
}

mapper.UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.UserMapper"><resultMap type="domain.Employee" id="empResultMap"><id property="empId" column="empId" /><result property="name" column="name" /><result property="deptId" column="deptId" /></resultMap>
</mapper>

查询结果:

三、@ResultMap配置一对一关联查询
Client.java

package client;import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.Employee;
import domain.EmpMapper;public class Client {public static void main(String args[]) throws IOException {InputStream in=null;SqlSessionFactory factory=null;SqlSession sqlSession=null;try {in = Resources.getResourceAsStream("mybatis-config.xml");}catch(IOException e) {e.printStackTrace();}try {factory = new SqlSessionFactoryBuilder().build(in);factory.getConfiguration().addMapper(EmpMapper.class);sqlSession = factory.openSession();       EmpMapper userMapper=sqlSession.getMapper(EmpMapper.class);List<Employee> list = userMapper.selectEmpByEmpId(1);for(Employee emp:list)System.out.println(emp.getDeptId()+" "+emp.getEmpId()+" "+emp.getName()+" "+emp.getDepts().getDeptName());sqlSession.commit();}catch(Exception e) {e.printStackTrace();if(sqlSession!=null) {sqlSession.rollback();}}finally {if(sqlSession!=null) {sqlSession.close();}}}
}

Employee.java

package domain;public class Employee {private int empId;private String name;private int deptId;private Department depts;public int getEmpId() {return empId;}public void setEmpId(int empId) {this.empId = empId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}public Department getDepts() {return depts;}public void setDepts(Department depts) {this.depts = depts;}
}

Department.java

package domain;public class Department {private int deptId;private String deptName;public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}
}

EmpMapper.java(interface)

package domain;import java.util.List;
import org.apache.ibatis.annotations.*;public interface EmpMapper {@Select("select * from employee,department where empId=#{empId}")@ResultMap("mapper.UserMapper.empAndDeptResultMap")public List<Employee> selectEmpByEmpId(int empId);
}

mapper.UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.UserMapper"><resultMap type="domain.Employee" id="empAndDeptResultMap"><id property="empId" column="empId" /><result property="name" column="name" /><result property="deptId" column="deptId" /><association property="depts" resultMap="deptResultMap"></association></resultMap><resultMap type="domain.Department" id="deptResultMap"><id property="deptId" column="deptId" /><result property="deptName" column="deptName" /></resultMap>
</mapper>

employee表:

department表:

查询结果:

四、@ResultMap配置一对多查询
Client.java

package client;import java.io.*;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.Employee;
import domain.Department;
import domain.EmpMapper;public class Client {public static void main(String args[]) throws IOException {InputStream in=null;SqlSessionFactory factory=null;SqlSession sqlSession=null;try {in = Resources.getResourceAsStream("mybatis-config.xml");}catch(IOException e) {e.printStackTrace();}try {factory = new SqlSessionFactoryBuilder().build(in);factory.getConfiguration().addMapper(EmpMapper.class);sqlSession = factory.openSession();       EmpMapper userMapper=sqlSession.getMapper(EmpMapper.class);Department dept = userMapper.selectDeptBydeptId(1);for(Employee emp:dept.getEmps())System.out.println(emp.getName()+" "+dept.getDeptId()+" "+dept.getDeptName());sqlSession.commit();}catch(Exception e) {e.printStackTrace();if(sqlSession!=null) {sqlSession.rollback();}}finally {if(sqlSession!=null) {sqlSession.close();}}}
}

Department.java

package domain;import java.util.List;public class Department {private int deptId;private String deptName;private List<Employee> emps;public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}public List<Employee> getEmps() {return emps;}public void setEmps(List<Employee> emps) {this.emps = emps;}
}

Employee.java

package domain;public class Employee {private int empId;private String name;private int deptId;public int getEmpId() {return empId;}public void setEmpId(int empId) {this.empId = empId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}
}

EmpMapper.java(interface)

package domain;import org.apache.ibatis.annotations.*;public interface EmpMapper {@Select("select * from department,employee where department.deptId=employee.deptId and department.deptId=#{deptId}")@ResultMap("mapper.UserMapper.deptAndEmpResultMap")public Department selectDeptBydeptId(int deptId);
}

mapper.UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.UserMapper"><resultMap type="domain.Employee" id="empResultMap"><id property="empId" column="empId" /><result property="name" column="name" /><result property="deptId" column="deptId" /></resultMap><resultMap type="domain.Department" id="deptAndEmpResultMap"><id property="deptId" column="deptId" /><result property="deptName" column="deptName" /><collection property="emps" resultMap="empResultMap"></collection></resultMap>
</mapper>

employee表:

department表:

查询结果:

Maven使用注解配置SQL映射器(@Results,@ResultMap)相关推荐

  1. Maven使用注解配置SQL映射器(@Select,@Insert,@Update,@Delete)

    工程目录: Client.java package client;import java.io.*; import java.util.List; import org.apache.ibatis.i ...

  2. Mybatis基于XML配置SQL映射器(二)

    Mybatis之XML注解 之前已经讲到通过 mybatis-generator 生成mapper映射接口和相关的映射配置文件: 下面我们将详细的讲解具体内容 首先我们新建映射接口文档  sysUse ...

  3. Mybatis基于XML配置SQL映射器(一)

    Durid和Mybatis开发环境搭建 SpringBoot搭建基于Spring+SpringMvc+Mybatis的REST服务(http://www.cnblogs.com/nbfujx/p/76 ...

  4. 【SpringMVC框架】注解的处理器映射器和适配器配置

    下面我们来探讨注解的处理器映射器和适配器 1.注解的处理器映射器和适配器 在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.De ...

  5. 14. 使用MyBatis注解配置SQL

    14. 使用MyBatis注解配置SQL 1.MyBatis常用注解 @Insert:实现新增,代替了 @Delete:实现删除,代替了 @Update:实现更新,代替了 @Select:实现查询,代 ...

  6. SpringMVC - 非注解的处理器映射器和适配器

    为什么80%的码农都做不了架构师?>>>    一.非注解的处理器映射器 提供的处理器有两个属性.一个是id属性,一个是name属性.分别对应两种不同的映射器. <bean i ...

  7. 非注解和注解的处理器映射器和适配器---SpringMVC学习笔记(三)

    非注解的处理器映射器和适配器 非注解的处理器映射器 之前的入门Demo中使用的就是非注解的处理器映射器: org.springframework.web.servlet.handler.BeanNam ...

  8. 【SpringMVC框架】非注解的处理器映射器和适配器

    非注解的处理器映射器和适配器 1.非注解的处理器映射器 之前的处理器映射器: org.springframework.web.servlet.handler.BeanNameUrlHandlerMap ...

  9. SpringMVC学习记录二——非注解和注解的处理器映射器和适配器

    3      非注解的处理器映射器和适配器 3.1      非注解的处理器映射器 处理器映射器: org.springframework.web.servlet.handler.BeanNameUr ...

最新文章

  1. 如何打造企业的组织能力?战略决定组织,而组织决定成败!
  2. 这个AI模型用最少的训练数据学习对象之间的关系
  3. 多DHCP服务器的作用域 及备用DHCP服务器(一)
  4. Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
  5. 其他团队对本组建议汇总
  6. rand函数的使用方法php,PHP array_rand()函数 使用基础教程
  7. boost::hof::flip用法的测试程序
  8. python列表按照批次分配数据(亲测)
  9. ORACLE TEXT FILTER PREFERENCE(一)
  10. php redis命令大全,redis中key相关命令详解
  11. 网络流-Dinic求最大流(仅做自己复习,写的很不清楚)
  12. 【Qt】qt库结构及示例
  13. 编程珠玑---第二章 啊哈!算法
  14. Anaconda中使用图形化界面创建虚拟环境
  15. c语言头文件sys wait.h,错误:sys/wait.h:没有这样的文件或目录
  16. 工作之RF功能开发入门
  17. 一个算法模型搞定千万种场景,人工智能领域出现一匹黑马
  18. php oa系统 缺点,PHPOA:被低估的OA自动化系统
  19. php的惰性加载,惰性加载
  20. C语言基础级——标准输入和输出

热门文章

  1. 互联网大厂春节礼盒鄙视链
  2. 从开源开发者身上学到的 5 种品质
  3. 开发者请注意!2020年的大前端发展趋势已出炉! | 原力计划
  4. 路由的二次风口,华为与迅游能抓住吗?
  5. 用 Go 重构 C 语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
  6. 华为紧急调试鸿蒙;首个 5G 全覆盖国家诞生;Flutter 1.7 正式发布 | 极客头条
  7. 这本 Kindle 排名第一的 Python 3 入门书,火遍了整个编程圈!| 码书
  8. 动画:什么是散列表?
  9. “WiFi 万能钥匙”盗 9 亿用户数据,如何看待运营平台滥用隐私的问题?
  10. 写给科技公司项目经理的一封警告书