Mybatis註解開發

1.註解的使用規範

  a)元註解, 描述註解的註解. 一共有四個:
  • @Target, 表示當前註解作用的位置
  • @Retention, 保留策略, 在什麼時間段生效
  • @Document, 註解將出現在javadoc中
  • @Inherited, 可以被子類繼承
   b)註解的使用規範:
  • 使用註解需要先導包: import
  • 語法: @註解名(屬性=值, …)
   c)註解中參數的類型
  • 簡單類型: 字符串, 數值, Class…
  • 數組類型: 屬性={值1, 值2, …}
  • 對象類型: 屬性=@註解(屬性=值, …)
   d)簡化操作:
  • 大部分註解有一個默認屬性, 叫value
  • 當屬性只出現一個, 並且是默認屬性時, 可以省略屬性名, 直接寫值
  • 如果數組的元素只有一個值, 可以省略{}

2.MyBatis中常用的註解

  • 簡單的crud
public interface UserMapper {
  //查詢
  @Select("select * from user where id=#{id}")
  User selectUser(int id);
  //查詢全部
  @Select("select * from user")
  List<User> selectUserList();
 //增加數據
 @Insert("insert into user (name) values(#{name})")
 boolean insertUser(String name);
     //修改用戶
 @Update("update user set name=#{name} where id=#{id}")
 boolean updateUser(@Param("name") String name,@Param("id") int id);
 //刪除用戶
 @Delete("delete from user where id=#{id}")
 boolean deleteUser(int id);
}
  • 一對一註解
@Select("select * from user")
@Results({
        @Result(id = true,property = "id",column = "id"),//id=true 對應於主鍵
        @Result(property = "uid",column = "uid"),
        @Result(property = "user",column = "uid",javaType = User.class,
        one = @One(select = "com.example.dao.UserDao.findUserByid",fetchType = FetchType.DEFAULT))
        //user 對應實體類中一對一的實體類名字,uid表示通過uid外鍵查詢User,JavaType表示查詢結果
        //映射成User類型對象,one=表示一對xx fetchType.default默認是立即加載全部查詢,使用lazy懶加載需要才查詢
})
List<User> selectUserList();
  • 一對多註解
@Select("select * from user")
@Results({
        @Result(id = true,property = "id",column = "id"),//id=true 對應於主鍵
        @Result(property = "uid",column = "uid"),
        @Result(property = "user",column = "uid",javaType = User.class,
        many = @Many(select = "com.example.dao.UserDao.findUserByid",fetchType = FetchType.DEFAULT))
        //user 對應實體類中一對一的實體類名字,uid表示通過uid外鍵查詢User,JavaType表示查詢結果
        //映射成User類型對象,one=表示一對xx fetchType.default默認是立即加載全部查詢,使用lazy懶加載需要才查詢
})
List<User> selectUserList();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章