zoukankan      html  css  js  c++  java
  • 15、mybatis学习——鉴别器discriminator的使用

    这个例子只是重在为了理解discriminator的使用

    一对多的实体类Student.java

     多对一的实体类College.java

    StudentMapper接口定义测试discriminator的方法

     

    StudentMapper的sql配置文件中进行相对应接口方法配置

         <!-- 测试鉴别器discriminator -->
         <resultMap type="com.pxxy.bean.Student" id="discriminatorMap">
             <id column="id" property="id"/>
             <result column="name" property="name"/>
             <!-- column:指定通过哪列进行鉴别
                 javaType:指定该列是什么类型 -->
             <discriminator javaType="string" column="name">
                 <!--value:指该列的值是什么时
                  此例是如果是名字是小红时把她的学校信息也查询 -->
                 <case value="小红" resultType="student">
                     <association property="college" 
                         select="com.pxxy.bean.CollegeMapper.getColById"
                         column="c_id">
                     </association>
                 </case>
             </discriminator>
         </resultMap>
         <select id="discriminatorTest" resultMap="discriminatorMap">
             select * from student where id=#{id}
         </select>

    测试方法

        //测试根据学校id分布查询学校以及学校的学生
        @Test
        public void testDiscriminatorTest() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
            Student student = studentMapper.discriminatorTest(1);
            System.out.println(student);
            System.out.println(student.getCollege());
            sqlSession.close();
        }

    数据库中的数据

     小红的id是2,当查询id是2时

     查询结果有学校信息

     当查询id为1时,1是小明所以不会有学校信息

     查询结果没有学校信息

  • 相关阅读:
    关于xutils中的BitmapUtil实现简单的缓存和下载
    自定义spinner
    Dart格式化输出
    使用 dsc_extractor 导出 dyld_shared_cache_arm64
    iOS11 获取手机已安装应用列表
    恢复二进制文件中的block符号表
    iOS 反反注入 修改__RESTRICT,__restrict工具
    Node的调试
    UVa10131
    UVa116
  • 原文地址:https://www.cnblogs.com/lyh233/p/12353111.html
Copyright © 2011-2022 走看看