我试图避免使用额外的xml来定义mybatis3中的映射器。注释适合于。
我对@ SelectProvider / @ InsertProvider /等的使用感到有些困惑。不要以为网上有很多资源可以指导我。
基本上,我想在mybatis3中找到替代的注释版本。
例如,我有一个xml映射器,我想将其转换为使用注释
<select ...>
<where>
<if cause.....>
</if>
<if cause......>
</if>
</where>
</select>
有人能提供包含代码的具体答案/解决方案吗?
提前致谢!
答案 0 :(得分:21)
替代解决方案可能是:
在@annotation
的开头添加<script>
@Update("<script>
update Author
<set>
<if test="username != null">username=#{username},</if>
<if test="password != null">password=#{password},</if>
<if test="email != null">email=#{email},</if>
<if test="bio != null">bio=#{bio}</if>
</set>
where id=#{id}
</script>")
另外,我们在项目中将.groovy编译为.class,因此,我们可以在@annotation中编写SQL,如上所述
答案 1 :(得分:7)
:
@SelectProvider(type=MyClass.class, method="myMethod")
public Object selectById(int id);
:
public static String myMethod() {
return "select * from MyTable where id=#{id}";
}