zoukankan      html  css  js  c++  java
  • MyBatis 多对一操作

    数据库表结构

    学生表多对一老师表

    XML中的两种书写方式:

    方式一:子查询

    <select id="getStudent" resultMap="StudentMapper">
        select * from student;
    </select>
    
    <resultMap id="StudentMapper" type="Student">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/>
    </resultMap>
    
    <select id="getTeacher" resultType="Teacher">
        select * from teacher where id=#{id};
    </select>

    方式二:链表查询

    <select id="getStudent2" resultMap="StudentTeacher">
        SELECT
            s.id sid,
            s.name sname,
            T.name tname
        FROM
            student s,
            teacher T
        WHERE
            s.tid = T.id;
    </select>
    
    <resultMap id="StudentTeacher" type="Student">
        <result property="id" column="sid"/>
        <result property="name" column="sname"/>
        <association property="teacher" javaType="Teacher">
            <result property="id" column="tid"/>
            <result property="name" column="tname"/>
        </association>
    </resultMap>

    测试文件

    public class MyTest {
    
        @Test
        public void getTeacherTest() {
    
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
            List<Student> student = mapper.getStudent2();
    
            for (Student student1 : student) {
                System.out.println(student1);
            }
    
            sqlSession.close();
        }
    }
  • 相关阅读:
    ScriptManager在客户端来调用服务器端方法或者webService的方法
    转2010 .NET面试题整理之基础篇
    .net 面试题1
    读写文件
    三种编解码方式
    vs2008快捷键
    SharePoint类库说明.NET教程,Asp.Net研发
    一道sql面试题解法
    16天学完java
    总结DataTable 导出Excel数据
  • 原文地址:https://www.cnblogs.com/shangwei/p/15266660.html
Copyright © 2011-2022 走看看