0
点赞
收藏
分享

微信扫一扫

Mybatis注解开发


1.注解的使用规范

  • @Target, 表示当前注解作用的位置
  • @Retention, 保留策略, 在什么时间段生效
  • @Document, 注解将出现在javadoc中
  • @Inherited, 可以被子类继承
  • 使用注解需要先导包: import
  • 语法: @注解名(属性=值, …)
  • 简单类型: 字符串, 数值, Class…
  • 数组类型: 属性={值1, 值2, …}
  • 对象类型: 属性=@注解(属性=值, …)
  • 大部分注解有一个默认属性, 叫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();


举报

相关推荐

0 条评论