MyBatis 常用注解
MyBatis 注解( annotation)
之前文章介绍了MyBatis的基本用法、关联映射、动态SQL和缓存机制等知识,其所有的配置都是使用XML完成,但是大量的XML配置文件的编写是非常繁琐的,因此MyBatis也提供了更加简便的基于注解( annotation)的配置方式。
MyBatis 常用注解
本文将重点介绍MyBatis的注解配置,MyBatis的注解位于org.apache.ibatis.annotations
包下。常用Annotation注解有:
Select注解:映射查询的SQL语句。
SelectProvider注解:Select语句的动态SQL映射。允许指定一个类名和一个方法在执行时返回运行的查询语句。有两个属性: type 和method。type属性是类的完全限定名,method是该类中的那个方法名。
Insert注解:映射插入的SQL语句。
InsertProvider注解:Insert语句的动态SQL映射。允许指定一个类名和一个方法在执行时返回运行的插入语句。有两个属性: type和method。type属性是类的完全限定名,method是该类中的那个方法名。
Update注解:映射更新的SQL语句。
UpdateProvider注解:Update语句的动态SQL映射。允许指定一个类名和一个方法在执行时返回运行的更新语句。有两个属性: type 和method。type 属性是类的完全限定名,method是该类中的那个方法名。
Delete注解:映射删除的SQL语句。
DeleteProvider注解:Delete 语句的动态SQL映射。允许指定一个类名和一个方法在执行时返回运行的删除语句。有两个属性: type 和method。type 属性是类的完全限定名,method是该类中的那个方法名。
Result注解:在列和属性之间的单独结果映射。属性包括: id、column、property、javaType、jabcType、type、Hander、one、many。id属性是一个布尔值,表示是否被用于主键映射。one属性是单独的联系,和XML配置中的<association>
相似,而many属性是对集合而言的,和XML配置的<collection>
相似。
Results注解:多个结果映射(Result) 列表。
Options注解:提供配置选项的附加值,它们通常在映射语句上作为附加功能配置出现。
One注解:复杂类型的单独属性值映射。必须指定select属性,表示已映射的SQL语句的完全限定名。
Many注解:复杂类型的集合属性映射。必须指定select属性,表示已映射的SQL语句的完全限定名。
Param注解:当映射器的方法需要多个参数时,这个注解可以被应用于映射器方法的参数,给每个参数取一个名字。例如,使用@Param("id")
,SQL中参数应该被命名为#{id}
。否则,默认情况下,多参数将会以它们的顺序位置和SQL语句中的表达式进行映射。如下所示:
<insert id="insertUser" parameterType="User">
insert into users (id, username, password)
values (#{id}, #{username}, #{password})
</insert>
如果 User 类型的参数对象传递到了语句中,会查找 id、username 和 password 属性,然后将它们的值传入预处理语句的参数中。