• 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();
        }
    }
  • 相关阅读:
    JS计算字符串长度(兼容后端PHP)
    使用iview-admin2构建的项目,热更新无法启动
    关于HSTS的总结
    (转)javascript兼容问题总结
    js写一个通讯录
    HTML5+通讯录获取指定多个人的信息
    MUI封装的选择器调用
    心得小细节(一)
    读后感(一) web运作原理探析
    码农和软件开发工程师
  • 原文地址:https://www.cnblogs.com/shangwei/p/15266660.html
Copyright © 2020-2023  润新知