MyBatis支持注解的使用,可以在接口中直接使用注解进行SQL的操作。
1、@Insert
编写insert语句,实现数据的新增
2、@Update
编写update语句,实现数据修改
3、@Delete
编写delete语句,实现数据删除
4、@Select
编写select语句,实现数据的查询
5、@Options
参数设置
常用属性:
keyProperty
useGeneratedKeys
statementType
keyColumn
timeOut
6、ResultType
标记结果集的数据类型,Class<?>,等价于xml中的resulttype
7、@Results
标记结果集的数据类型,等价于xml中的<resultmap>
8、@Result
结果集的具体的数据对应
常用属性:
id
property
column
one:一对一或多对一
many:集合,一对多
javaType:对应的java中数据类型
9、@One
实现嵌套查询,一般用于一对一或多对一的关系中
常用属性:
select
fetchType:抓取策略
取值:
FetchType.EAGER
FetchType.LAZY
FetchType.EAGER
10、@Many
实现嵌套查询,一般用于一对多或多对多
常用属性:
select
fetchType:抓取策略
取值:
FetchType.EAGER
FetchType.LAZY
FetchType.EAGER
代码:
接口中使用注解的代码:
//注解式实现MyBatis
public interface EmpMapper{ //新增数据 @Insert(“insert into emp(name,address) values(#{name},#{address})”) @Options(keyProperty=”id”)//参数设置主要设置xml中标签中的属性 int save(Emp emp); //修改 @Update(“update emp set name=#{name},address=#{address} where id=#{id}”) int update(Emp emp); //删除 @Delete(“delete from emp where id=#{id}”) int delete(int id); //查询 @Select(“select * from emp”) @ResultType(Emp.class)//每行记录的数据类型 List<Emp> query(); //查询、属性和字段单独标记 @Select(“select * from emp wher id=#{id}”) @Results(value={ @Result(id=true,property=”id”,column=”id”), @Result(property=”name”,cplumn=”name”), @Result(property=”address”,column=”address”) }) Emp querySingle(int id); }