Mybatis使用association定义关联查询对象规则

 时间:2024-10-14 12:31:43

1、我们在程序中需要查询员工的时候同时查询出部门信息。package com.gwolf.bean;public class Employee implements java.io.Serializable{ private Integer empId; private String empName; public Employee() { } public Employee(Integer empId, String empName, String email, String gender) { this.empId = empId; this.empName = empName; this.email = email; this.gender = gender; } private String email; private String gender; private Department department; public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; } public Integer getEmpId() { return empId; } public void setEmpId(Integer empId) { this.empId = empId; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Employee [empId=" + empId + ", empName=" + empName + ", email=" + email + ", gender=" + gender + "]"; }}

Mybatis使用association定义关联查询对象规则

2、定义Mapper.xml文件内容,使用联合属性<association property=""></association>查询级联内容

Mybatis使用association定义关联查询对象规则

3、指定那个属性是联合的对象和属性对象的类型。<association property="department" javaType="com.gwolf.bean.Department"></association>

Mybatis使用association定义关联查询对象规则

4、定义association关联属性的一些设置 <association property="department" javaType="com.gwolf.bean.Department"> <id column="dept_id" property="deptId"/> <result column="dept_name" property="deptName"/> </association>

Mybatis使用association定义关联查询对象规则

5、整体代码如下:<?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="com.gwolf.dao.EmployeeMapper"> <!-- namespace:名称空间 id:唯一标识 resultType:返回值类型 #{empId}:从传递过来的参数取出empId值 --> <resultMap type="com.gwolf.bean.Employee" id="MyDifEmp"> <id column="emp_id" property="empId"/> <result column="emp_name" property="empName"/> <result column="gender" property="gender"/> <result column="email" property="email"/> <result column="emp_name" property="empName"/> <association property="department" javaType="com.gwolf.bean.Department"> <id column="dept_id" property="deptId"/> <result column="dept_name" property="deptName"/> </association> </resultMap> <select id="getEmpById" resultType="employee" databaseId="mysql" resultMap="MyDifEmp"> SELECT e.emp_id, e.emp_name, e.gender, e.email, e.d_id,d.dept_id,d.dept_name FROM tbl_emp e join tbl_dept d on e.d_id=d.dept_id where e.emp_id = #{empId} </select> <select id="getEmpByIdReturnMap" resultType="com.gwolf.bean.Employee"> SELECT e.emp_id, e.emp_name, e.gender, e.email, e.d_id FROM tbl_emp e where e.emp_id = #{empId} </select> <insert id="addEmp" parameterType="employee" useGeneratedKeys="true" keyProperty="empId" > insert into tbl_emp(emp_name,email,gender) value(#{empName},#{email},#{gender}) </insert> <insert id="addEmp" parameterType="employee" databaseId="oracle"> <selectKey keyProperty="empId" order="BEFORE" resultType="Integer"> select employees_seq.nextval from dual </selectKey> insert into tbl_emp(emp_id,emp_name,email,gender) value(#{empId},#{empName},#{email},#{gender}) </insert></mapper>

Mybatis使用association定义关联查询对象规则

6、运行单元测试,查看员工的信息是否能够取到。

Mybatis使用association定义关联查询对象规则
  • 如何实现批量域名解析和绑定宝塔
  • 网络推广怎么学
  • 意大利佛罗伦萨威尼斯吃的物价如何?
  • 狗狗不同阶段的喂养方式
  • 如何按摩美白
  • 热门搜索
    鸡眼怎么形成的 梦幻西游手游怎么玩 圈1怎么打 牛仔衣怎么搭配 山东航空怎么样 怎么增加肺活量 怎么开车省油 电脑开机蓝屏怎么办 豆腐皮怎么做 肚脐眼周围疼是怎么回事