Mybatis中用到注解的地方一般有两个地方:
1. 参数注解
2. 接口注解
1.参数注解
- 参数注解的形式:
在参数前加注解 @Param(“自定义参数名”)
public void insert2(@Param("myname") String name,@Param("myprice") int price);
- 最常用于多个参数传参,和#{0},#{1}….传参功能相同,但更清晰,更直观。当然可用于自定义mapper文件中参数的名字。
<!-- 接口方法 -->
public void insert2(@Param("myname") String name,@Param("myprice") int price);
<!-- mapper映射文件 -->
<insert id="insert2" parameterType="string">
insert into tbbook values(null,#{myname},#{myprice},null)
</insert>
- 另外需注意:当使用了@Param注解来声明参数时,在mapper文件中使用 #{} 或 ${} 的方式都可以。即如下也可以:
<!-- mapper映射文件 -->
<insert id="insert2" parameterType="string">
insert into tbbook values(null,${myname},${myprice},null)
</insert>
1.接口注解
- 即以Dao接口+annotation (注解)的方式来实现Dao。这种方式十分方便,但处理复杂的sql语句很困难,可用来处理一些简单的sql语句。
@Insert("insert into tbbook values(null,#{bookname},#{price},#{publisher})")
public void insert(Tbbook b);
- 另外,如果使用Dao接口+annotation,需要更改核心配置文件的mapper配置:
<mappers>
<!-- 使用Dao+注解时需要加载注解,注解所在包 -->
<mapper resource="com.zx.dao"/>
</mappers>
- 最新版本不支持在接口注解中使用#{0},#{1}….方式传参