MyBatis--注解開發
MyBatis注解開發
MyBatis常用注解

將映射文件替換為注解:
public interface UserMapper {
@Insert("insert into user value (...)")
public void save(User user);
@Update("")
public List<User> findAll();
}
其他delete,select等注解類似
之后將之前核心配置文件中的加載映射文件代碼換成:
<mappers>
<!-- 指定接口所在包-->
<package name="com.xxx.Mapper"/>
</mappers>
復雜查詢:


一對一:
方法一
@Insert("insert into user value (...)")
@Results({
@Result(column = "oid",property = "id")
@Result(column = "oid",property = "id")
@Result(column = "oid",property = "id")
})
public void save(User user);
方法二
@Select("select * from orders ")
@Results({
@Result(column = "oid",property = "id"),
@Result(column = "oid",property = "id"),
@Result(column = "oid",property = "id"),
@Result(
property = "user",//要封裝的屬性名稱
column = "uid",//根據那個字段來查詢另外一個表數據
javaType = User.class,//要封裝的實體類型
//select屬性代表那個接口方法獲得數據,findById是我們寫好的一個帶select注解的接口方法用來查詢id相同的
one=@One(select = "com.xxx.mapper.UserMapper.findById")
)
})
public void save(User user);
一對多:
@Select("select * from user ")
@Results({
@Result(id = true, column = "id", property = "id"),
@Result(column = "oid", property = "id"),
@Result(column = "oid", property = "id"),
@Result(property = "orderList",
column = "id",
javaType = List.class,
many = @Many(select = "com.xxx.mapper.findById")
)
})
public void save(User user);
多對多:
@Select("select * from user ")
@Results({
@Result(id = true, column = "id", property = "id"),
@Result(column = "username", property = "username"),
@Result(column = "password", property = "password"),
@Result(property = "roleList",
column = "id",
javaType = List.class,
many = @Many(select = "com.xxx.mapper.findByUid")
)
})
public void save(User user);
@Select("select * from sys_user_role ur,sys_role r where ur.roleId=r.id And ur.userId=#{uid")
public void findByUid(User user);
浙公網安備 33010602011771號