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 属性,然后将它们的值传入预处理语句的参数中。

标签: none

添加新评论