java resultmap_mybatis: resultMap 结果集映射和多表查询
mybatis 在進行 select 查詢操作的時候,返回類型可以用 resultType,也可以用 resultMap;
resultType 是直接表示返回類型的(一般返回為基本數據類型時使用,當查詢的是一條SQL數據時,且這條SQL數據的每個字段都和一個Javabean 中的屬性名 與之對應,mybatis 會通過 autoMapping ,將每個字段的值賦給 Javabean),而當字段名和屬性名不一致時,這時可以使用 resultMap
resultMap 是對外部的一個 ResultMap 標簽的引用,并且? resultType 跟 resultMap 不能同時存在。
一個簡單 resultMap 查詢
select * from teacher where id=#{id}
當 SQL 中字段名 和 javabeen Teacher 的屬性名一致時,自動映射寫法如下
select * from teacher where id=#{id}
resultMap 常用標簽屬性說明
id:對應中 resultMap 的名稱
type:type就是指定映射到哪一個實體類中
column:在數據庫中的列名稱
property:在實體類定義的屬性名稱
associattion :實體類對象包含另一個對象時,例如:一個學生對應一個老師 student =》teacher
collection :實體類對象包含的是一個集合時,例如:一個老師對應一群學生 teacher =》List
association(一對一) 和 collection(一對多)
association:一個學生對應一個老師 student =》teacher
select * from student
collection:一個老師對應一群學生 teacher =》List
select * from teacher
select:用于加載復雜類型屬性的映射語句的 ID,它會從 column 屬性指定的列中檢索數據,作為參數傳遞給目標 select 語句。 具體請參考下面的例子。注意:在使用復合主鍵的時候,你可以使用?column="{prop1=col1,prop2=col2}"?這樣的語法來指定多個傳遞給嵌套 Select 查詢語句的列名。這會使得?prop1?和?prop2?作為參數對象,被設置為對應嵌套 Select 語句的參數。
SELECT * FROM BLOG WHERE ID = #{id}
SELECT * FROM AUTHOR WHERE ID = #{id}
property:映射到列結果的字段或屬性。 -----------------指的是 javaBean 中的屬性 類型(一個javaBeen 中的屬性可以是基本數據類型也可以是 Object)
javaType:一個 Java 類的完全限定名,或一個類型別名。---------------------指的是一個 JavaBean class類型( A a = new a(); 理解為 A 類型)
總結
以上是生活随笔為你收集整理的java resultmap_mybatis: resultMap 结果集映射和多表查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx负载均衡配置实例
- 下一篇: PhotoSwipe之API(4)