Mybatis中鉴别器discriminator的使用

Mybatis中的监别器:对查询的结果进行分支处理:

话不多说下面大家看例子,总结原理:

  • 我的表结构
  • EmpInfoMapper.xml
 <select id="queryAllEmpins" resultType="HashMap"
            resultMap="EmpInoMap">
        select * from empinfo
    </select>
    <resultMap id="EmpInoMap" type="empInfo">
        <id column="eid" property="id"/>

        <result column="eage" property="age"/>
        <result column="ejob" property="job"/>
        <result column="ephone" property="phone"/>
        
        <discriminator javaType="String" column="did">
            <case value="112" resultType="empInfo">
                <result column="ename" property="name"/>
            </case>
            <case value="121" resultType="empInfo">
                <result column="ejob" property="name"/>
            </case>
        </discriminator>
    </resultMap>
  • EmpInfoMapper接口
List<EmpInfo> queryAllEmpins();
  • 测试类
 @Test
   public  void queryAllEmpById() throws Exception{
       //Connection - SqlSession操作myBatis

       //config.xml  -> reader
       Reader reader = Resources.getResourceAsReader("conf.xml");

       //reader  ->SqlSession
       SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
       SqlSession session = sessionFactory.openSession();

       EmpInfoMapper empInfoMapper = session.getMapper(EmpInfoMapper.class);

       List<EmpInfo> empInfo = empInfoMapper.queryAllEmpins();

       System.out.println(empInfo);

       session.close();
   }
  • 运行的结果
    在这里插入图片描述
  • 给大家给出我表中的数据方便对照:
    在这里插入图片描述
发布了26 篇原创文章 · 获赞 22 · 访问量 6046

猜你喜欢

转载自blog.csdn.net/weixin_42893085/article/details/105105958