本文博客地址:http://blog.csdn.net/soonfly/article/details/67640653 (转载请注明出处)
MyBatis支持使用注解来配置映射的sql语句,这样可以省掉映射器xml文件。
一、映射语句
1、insert
比如入门实例中的:
public int insert(User user) throws Exception;
<insert id="insert" parameterType="twm.mybatisdemo.pojo.User" useGeneratedKeys="true" keyProperty="id">
insert into user (username,address,email) values (#{username},#{address},#{email})
</insert>
改成注解来配置映射:
@Insert("insert into user (username,address,email) values (#{username},#{address},#{email})")
@Options(useGeneratedKeys = true, keyProperty = "id")
public int insert(User user) throws Exception;
这里使用@Insert
注解来定义一个INSERT映射语句。
并且使用@Options
注解的userGeneratedKeys
和keyProperty
属性,让数据库auto_increment生成的主键值,赋值到keyProperty标记的属性id中
还有一种获取主键的方法(Oracle要用SELECT SEQ.NEXTVAL FROM DUAL ,且order设为before)
<insert id="insert" parameterType="twm.mybatisdemo.pojo.User" >
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select last_insert_id()
</selectKey>
insert into user (username,address,email) values (#{username},#{address},#{email})
</insert>
相应的注解是:
@Insert("insert into user (username,address,email) values (#{username},#{address},#{email})")
@SelectKey(statement="select last_insert_id()",keyProperty="id", resultType=int.class, before=true)
public int insert(User user) throws Exception;
2、select