mybatis实现一对多关系《Dept&Emp》

mybatis实现一对多关系《Dept&Emp》_第1张图片

库表设计

CREATE TABLE `dept` (

  `deptno` int(9) NOT NULL COMMENT '部门编号',

  `dname` varchar(50) DEFAULT NULL COMMENT '部门名称',

  `loc` varchar(50) DEFAULT NULL COMMENT '部门地址',

  PRIMARY KEY (`deptno`)

)COMMENT='部门信息表';





insert  into `dept`(`deptno`,`dname`,`loc`) values

(20,'RESEARCH','DALLAS'),

(30,'SALES','CHICAGO');





CREATE TABLE `emp` (

  `empno` int(4) NOT NULL COMMENT '雇员编号',

  `ename` varchar(10) DEFAULT NULL COMMENT '雇员名称',

  `job` varchar(9) DEFAULT NULL COMMENT '雇员岗位',

  `sal` float(7,2) DEFAULT NULL COMMENT '雇员工资',

  `dno` int(2)  COMMENT '部门编号',

  PRIMARY KEY (`empno`)

)COMMENT='雇员表';





insert  into `emp`(`empno`,`ename`,`job`,`sal`,`dno`) values

(7369,'SMITH','CLERK',800.00,20),

(7370,'SCOTT','MANAGER',900.00,20),

(7372,'LILY','CLERK',820.00,30),

(7373,'LUCY','CLERK',830.00,30);

--根据部门id查询部门信息及雇员信息

select d.*,e.* from dept d,emp e where  d.deptno=20 and d.deptno=e.dno;

--根据雇员id查询雇员及部门信息

select d.*,e.* from dept d,emp e where  e.empno=7370 and d.deptno=e.dno;

pom.xml



    4.0.0

    com.henu
    mybatis03_onetomanyplus
    1.0-SNAPSHOT

    jar

    
    
        org.mybatis
        mybatis
        3.4.5
    

    
        mysql
        mysql-connector-java
        5.1.6
    

    
        log4j
        log4j
        1.2.12
    

    
        junit
        junit
        4.10
    

        
            org.projectlombok
            lombok
            1.16.20
        
    

bean

使用lombok进行简化开发    如果遇到问题可以前往下方网站

https://blog.csdn.net/qq_41946557/article/details/100768770

mybatis实现一对多关系《Dept&Emp》_第2张图片

 dao

mybatis实现一对多关系《Dept&Emp》_第3张图片

 DeptDao.xml






    
        
        
        
        
            
            
            
            
            
        
    

    
    

EmpDao.xml

 






    
        
        
        
        
        
        
        
            
            
            
        
    

    
    

SqlMapConfig.xml中一个小细节

mybatis实现一对多关系《Dept&Emp》_第4张图片

测试类

package com.henu.test;

import com.henu.bean.Dept;
import com.henu.bean.Emp;
import com.henu.dao.DeptDao;
import com.henu.dao.EmpDao;
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.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * @author George
 * @description
 **/
public class DaoTest {

    InputStream is;
    SqlSessionFactoryBuilder builder;
    SqlSessionFactory factory;
    SqlSession sqlSession;

    @Before
    public void init() throws IOException {
        is = Resources.getResourceAsStream("SqlMapConfig.xml");
        builder = new SqlSessionFactoryBuilder();
        factory = builder.build(is);
        sqlSession = factory.openSession();
    }

    @Test
    public void findMessageByDeptno(){
        DeptDao deptDao = sqlSession.getMapper(DeptDao.class);
        List depts = deptDao.findMessageByDeptno(20);
        for (Dept dept : depts) {
            System.out.println(dept);
            System.out.println(dept.getEmps());
        }
    }

    @Test
    public void findMessageByEmpno(){

        EmpDao empDao = sqlSession.getMapper(EmpDao.class);
        Emp emp = empDao.findMessageByEmpno(7370);
        System.out.println(emp);
    }

    @After
    public void close() throws IOException {
        sqlSession.close();
        is.close();
    }

}

 

你可能感兴趣的:(mybatis,lombok使用,一对多)