MyBatis注解配置


Select  映射查詢的語句

Selectrovider  Select語句的動態SQL映射。允許指定一個類型和一個方法在執行時返回運行的查詢語句。有兩個屬性:type和method,type屬性是類的完全限定名,method是該類中的哪個方法名

Insert  插入語句

InsertProvider

update

updateProvider

delete

deleteProvider

Result  在列和屬性之間的單獨結果映射。屬性包括:id,column,property,javaType,jdbcType,type Handler,one,many。id屬性是一個布爾值,表示是否被用於主鍵映射。one屬性是單獨的聯系,many屬性是對集合而言的

Results  多個結果映射(Result)列表

Options  提供配置選項的附加值,他們通常在映射語句上作為附加功能配置出現

One  復雜類型的單獨屬性值映射。必須指定select屬性,表示已映射的sql語句的完全限定名

Many  復雜類型的集合屬性映射。必須指定select屬性,表示已映射的sql語句的完全限定名

Param  當映射器方法需要多個參數時,這個注解可以被應用於映射器參數來給每一個參數取一個名字。否則,多參數將會以它們的順序位置和sql語句中的表達式進行映射,這是默認的。使用@Param("id"),sql中參數應該被命名為#{id}

 

@Insert("insert into user(name,sex,age) values(#{name},#{sex}),#{age}")

@Options(useGenerateedKeys=true,keyProperty="id")//使用數據庫自動增長的主鍵,該操作需要底層數據庫的支持,keyProperty="id" 表示將插入數據生成的主鍵設置到user對象的id當中

int saveUser(User user);

 

@Delete("delete frome user where id = #{id}")

int removeUser(@Param("id") Integer id);@Param("id")表示給該注解后邊的變量取一個參數名稱,對應@Delete中的#{id}

 

@Update("update user set name = #{name}, sex = #{sex},age = #{age} where id = #{id}")

void modifyUser(User user);

 

@Select("select * from user where id = #{id}")

@Results({

@Result(id=true,column="id",property="id"),@Result(column="name",property="name"),@Result(column="sex",property="sex"),@Result(column="age",property="age")如果列和屬性相同,則可以省略@Result注解,MyBatis會自動映射

})

 

User selectUserById(Integer id);

 

@Select("select * from user")

List<User> getAllUsers();

 

一人一個身份證

@Select("select * from user where id = #{id}")

@Results({

@Result(id=true,column="id",property="id"),

@Result(column="name",property="name"),

@Result(column="sex",property="sex"),

@Result(column="age",property="age"),

@Result(column="card_id",property="card",

 one=@One(select="com.mapper.UserMapper.selectCardById"),fetchType=FetchType.EAGER)

)

})

column="card_id",property="card"表示User的card屬性對應表里的card_id列,one表示一個一對一關聯關系,fetchType表示查詢類型是立即加載(EAGER)還是懶加載(LAZY)

 

many=@Many(select="",fetchType="")

屬性是一個集合,一對多

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM