MyBatis映射文件resultMap元素中使用多個association的方法
現(xiàn)在有一張訂單表t_stockorder,其擁有id、code、client_id、merchandise_id、merchandise_number、order_date、operator_id這些字段,其中client_id關(guān)聯(lián)t_client表中code字段,merchandise_id關(guān)聯(lián)t_merchandise表的code字段,operator_id關(guān)聯(lián)t_employee表的code字段。
現(xiàn)在要通過SQL語句將訂單表中t_stockorder的數(shù)據(jù)全部查詢出來,SQL語句如下所示:
select so.id, so.code, c.name cname, m.name mname, so.merchandise_number, so.order_date, e.name ename from inventory.t_stockorder so inner join inventory.t_client c on c.code = so.client_id inner join inventory.t_merchandise m on m.code = so.merchandise_id inner join inventory.t_employee e on e.code = so.operator_id
現(xiàn)在要在mapper映射文件中添加動態(tài)Sql語句,一般情況下映射文件中的resultMap元素中只可以有一個association,那如何添加多個association到resultMap中呢?正確代碼如下圖所示:
<resultMap type='com.lwz.entity.Stockorder'> <id property='id' column='id' /> <result property='code' column='code' /> <result property='merchandiseNumber' column='merchandise_number' /> <result property='orderDate' column='order_date' /> <association property='client' javaType='Client' resultMap='ClientResultMap'></association> <association property='merchandise' javaType='Merchandise' resultMap='MerchandiseResultMap'></association> <association property='employee' javaType='Employee' resultMap='EmployeeResultMap'></association> </resultMap> <resultMap type='com.lwz.entity.Client'> <id property='code' column='code' /> <result property='name' column='cname' /> </resultMap> <resultMap type='com.lwz.entity.Merchandise'> <id property='code' column='code' /> <result property='name' column='mname' /> </resultMap> <resultMap type='com.lwz.entity.Employee'> <id property='code' column='code' /> <result property='name' column='ename' /> </resultMap> <!--通過實體作為篩選條件查詢--> <select resultMap='StockorderMap'> select so.id, so.code, c.name cname, m.name mname, so.merchandise_number, so.order_date, e.name ename from inventory.t_stockorder so inner join inventory.t_client c on c.code = so.client_id inner join inventory.t_merchandise m on m.code = so.merchandise_id inner join inventory.t_employee e on e.code = so.operator_id <where> <if test='id != null'>and id = #{id} </if> <if test='code != null and code != ’’'>and so.code = #[code] </if> <if test='client != null'>and client_id = #{client.code} </if> <if test='merchandise != null'>and merchandise_id = #{merchandise.code} </if> <if test='merchandiseNumber != null'>and merchandise_number = #{merchandiseNumber} </if> <if test='orderDate != null'>and order_date = #{orderDate} </if> <if test='employee != null'>and operator_id = #{employee.code} </if> </where> </select>
resultMap中association的各個屬性的含義:
property:映射實體類的字段或?qū)傩浴? colum:數(shù)據(jù)庫的列名或者列標簽別名。 javaTyp:完整java類名或別名。 jdbcType支持的JDBC類型列表列出的JDBC類型。這個屬性只在insert,update或delete的時候針對允許空的列有用。 resultMap: 一個可以映射聯(lián)合嵌套結(jié)果集到一個適合的對象視圖上的ResultMap。這是一個替代的方式去調(diào)用另一個select語句。到此這篇關(guān)于MyBatis映射文件resultMap元素中使用多個association的方法的文章就介紹到這了,更多相關(guān)MyBatis 多個association內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. navicat for mysql導出數(shù)據(jù)庫的方法2. Navicat Premium操作MySQL數(shù)據(jù)庫(執(zhí)行sql語句)3. 淺談Mysql連接數(shù)據(jù)庫時host和user的匹配規(guī)則4. 數(shù)據(jù)庫相關(guān)的幾個技能:ACCESS轉(zhuǎn)SQL5. navicat for mysql導出sql文件的方法6. MYSQL技巧:為現(xiàn)有字段添加自增屬性7. Windows下不能啟動mysql服務--錯誤總結(jié)8. SQL Server下7種“數(shù)據(jù)分頁”方案全網(wǎng)最新最全9. Access數(shù)據(jù)庫安全的幾個問題10. mybatis plus代碼生成工具的實現(xiàn)代碼
