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();
   }
  • 運行的結果
    在這裏插入圖片描述
  • 給大家給出我表中的數據方便對照:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章