<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              當前熱議!給查詢的字段起別名方式:resultMap自定義映射

              來源:CSDN 時間:2023-03-29 08:49:34

              目錄


              (資料圖片)

              準備

              問題

              方式一:給查詢的字段起別名

              方式二:修改核心配置文件mybatis-config.xml

              方式三:通過resultMap自定義映射

              準備

              我們的表的字段以及表數據如下

              生成的實體類的屬性如下

              public class Emp {    private Integer eid;    private String empName;    private Integer empAge;    private String empSex;    private String empEmail;}

              問題

              通過上面我們可以看到,實體類的屬性值與數據庫表的字段值并不是一樣的,這跟我們之前處理User類的時候是不一樣的,當時User類的屬性與其對應的數據表字段是一樣的。如果我們現在按照之前的思路來查找所有的Emp信息的話會出現什么問題呢?先看代碼。

              測試代碼:  @Test    public void test1(){        SqlSession sqlSession= SqlSessionUtil.getSqlSession();        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);        Listemps = mapper.getAllEmp();        emps.forEach(emp -> System.out.println(emp));    }輸出結果:Emp(eid=1, empName=null, empAge=null, empSex=null, empEmail=null)Emp(eid=2, empName=null, empAge=null, empSex=null, empEmail=null)Emp(eid=3, empName=null, empAge=null, empSex=null, empEmail=null)Emp(eid=4, empName=null, empAge=null, empSex=null, empEmail=null)Emp(eid=5, empName=null, empAge=null, empSex=null, empEmail=null)

              通過上面的測試結果,我們可以看到并不是所有的屬性都被賦值了。究其原因就是因為實體的屬性與其對應表的字段不一致。那么,如何解決這個問題呢,我們可以通過以下3三種方式。

              方式一:給查詢的字段起別名

              起的別名與實體類對應的屬性一致,在配置文件中可以這樣寫。對于名稱已經一樣的可以不用起別名,比如eid。

              測試結果為

              Emp(eid=1, empName=zhangsan, empAge=45, empSex=男, empEmail=bac@126.com)Emp(eid=2, empName=李四, empAge=55, empSex=男, empEmail=bac@126.com)Emp(eid=3, empName=王五, empAge=21, empSex=男, empEmail=bac@126.com)Emp(eid=4, empName=趙六, empAge=32, empSex=女, empEmail=bac@126.com)Emp(eid=5, empName=田七, empAge=33, empSex=女, empEmail=bac@126.com)

              方式二:修改核心配置文件mybatis-config.xml

              在核心配置文件中加入以下代碼

              測試結果

              Emp(eid=1, empName=zhangsan, empAge=45, empSex=男, empEmail=bac@126.com)Emp(eid=2, empName=李四, empAge=55, empSex=男, empEmail=bac@126.com)Emp(eid=3, empName=王五, empAge=21, empSex=男, empEmail=bac@126.com)Emp(eid=4, empName=趙六, empAge=32, empSex=女, empEmail=bac@126.com)Emp(eid=5, empName=田七, empAge=33, empSex=女, empEmail=bac@126.com)

              方式三:通過resultMap自定義映射

              結果

              Emp(eid=1, empName=zhangsan, empAge=45, empSex=男, empEmail=bac@126.com)Emp(eid=2, empName=李四, empAge=55, empSex=男, empEmail=bac@126.com)Emp(eid=3, empName=王五, empAge=21, empSex=男, empEmail=bac@126.com)Emp(eid=4, empName=趙六, empAge=32, empSex=女, empEmail=bac@126.com)Emp(eid=5, empName=田七, empAge=33, empSex=女, empEmail=bac@126.com)

              resultMap:設置自定義映射

              屬性:

              id:表示自定義映射的唯一標識,不能重復

              type:查詢的數據要映射的實體類的類型

              子標簽:

              id:設置主鍵的映射關系

              result:設置普通字段的映射關系

              子標簽屬性:

              property:設置映射關系中實體類中的屬性名

              column:設置映射關系中表中的字段名

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦
              Top 中文字幕在线观看亚洲日韩