Mybatis中實體類屬性與數(shù)據(jù)列表間映射方法介紹
Mybatis不像Hibernate中那么自動化,通過@Column注解或者直接使用實體類的屬性名作為數(shù)據(jù)列名,而是需要自己指定實體類屬性和
數(shù)據(jù)表中列名之間的映射關系,這一點讓用慣了Hibernate的人很不習慣,所幸經(jīng)過探索找到了建立映射關系的三種辦法,其中總也有比較 簡單的。
首先先定義一個實體類,如下:
public class User implements Serializable {
private Integer userId;
private String userName;
......
}
1. 通過XML映射文件中的resultMap
這種方式是最常見的,類似如下:
<mapper namespace="data.UserMapper">
<resultMap type="data.User" id="userResultMap">
<!-- 用id屬性來映射主鍵字段 -->
<id property="id" column="user_id"/>
<!-- 用result屬性來映射非主鍵字段 -->
<result property="userName" column="user_name"/>
</resultMap>
</mapper>
通過里面的id標簽和result標簽來建立映射關系,由property和column分別指定實體類屬性和數(shù)據(jù)表的列名。
2. 通過注解@Results和@Result
這兩個注解是與XML文件中的標簽相對應的:
@Results對應resultMap
@Result對應result
這兩個注解是應用在方法的級別上的,也就是在mapper方法上,如下:
@Select("select * from t_user where user_name = #{userName}")
@Results(
@Result(property = "userId", column = "user_id"),
@Result(property = "userName", column = "user_name")
)
User getUserByName(@Param("userName") String userName);
缺點:
由于注解是針對方法的,對于Mapper中的每個操作數(shù)據(jù)庫的方法都必須有相同的注解完成映射關系的建立,導致很多的配置是重復的;
如果要避免配置重復的問題,可以采用在XML配置文件中配置這個resultMap,然后再@Result中通過id屬性引用這個resultMap,
但是這樣感覺很麻煩(由于使用了兩種配置方式),不如直接使用基于XML的resultMap配置方式;
3. 通過屬性配置完成映射
使用者最陌生的是通過配置屬性來完成映射,Mybatis給我們提供了一種映射方式,如果屬性的命名是遵從駝峰命名法的,數(shù)據(jù)列名遵從下劃線命名,
那么可以使用這種方式,類似如下:
userName對應user_name;
userId對應user_id;
配置代碼如下:
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); Configuration configuration = new Configuration(); configuration.setMapUnderscoreToCamelCase(true); sqlSessionFactoryBean.setConfiguration(configuration);
4. 通過使用在SQL語句中定義別名完成映射
這種方式最直接,直接在SQL語句中建立別名來完成映射,如下:
@Select("select user_name as userName, user_id as userId from t_user where user_name = #{userName}")
User getUserByName(@Param("userName") String userName);
總結
以上就是本文關于Mybatis中實體類屬性與數(shù)據(jù)列表間映射方法介紹的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Hibernate實現(xiàn)悲觀鎖和樂觀鎖代碼介紹、Hibernate核心思想與接口簡介等。下面介紹本站幾款有趣的游戲,學習工作之余放松下心情也是很必要的。也希望大家多多支持腳本之家網(wǎng)站!
海濱消消樂app for android v1.13 安卓版
http://www.dhdzp.com/game/578587.html
一起來飛車app for android v1.5.1 安卓版
相關文章
Spring Boot 整合 Mockito提升Java單元測試的高效實踐案例
Mockito與Spring Boot的整合為Java開發(fā)者提供了一套完整的解決方案,使得單元測試更為精準、高效,從而確保了代碼質量、降低了維護成本,并促進了項目的持續(xù)集成與交付,感興趣的朋友跟隨小編一起看看吧2024-04-04
Springboot整合SpringSecurity的完整案例詳解
Spring Security是基于Spring生態(tài)圈的,用于提供安全訪問控制解決方案的框架,Spring Security登錄認證主要涉及兩個重要的接口 UserDetailService和UserDetails接口,本文對Springboot整合SpringSecurity過程給大家介紹的非常詳細,需要的朋友參考下吧2024-01-01
SpringBoot后端進行數(shù)據(jù)校驗JSR303的使用詳解
這篇文章主要介紹了SpringBoot后端進行數(shù)據(jù)校驗JSR303的使用詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
SpringBoot如何用java生成靜態(tài)html
這篇文章主要介紹了SpringBoot如何用java生成靜態(tài)html,文章圍繞主題展開詳細的內(nèi)容介紹,需要的朋友可以參考一下2022-06-06

