MyBatis可以通过以下几种方式添加数据并返回对象:
insert
语句添加数据并返回自动生成的主键值:// 定义一个mapper接口方法
void insertUser(User user);
// 使用Mapper XML配置文件
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
// 调用mapper接口方法,并获得自动生成的主键值
userMapper.insertUser(user);
System.out.println(user.getId());
selectKey
标签在插入语句中获取自动生成的主键值:// 使用Mapper XML配置文件
<insert id="insertUser" parameterType="com.example.User">
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
// 调用mapper接口方法,主键值会被设置到user实例中
userMapper.insertUser(user);
System.out.println(user.getId());
useGeneratedKeys
标签在插入语句中获取自动生成的主键值:// 使用Mapper XML配置文件
<insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
// 调用mapper接口方法,主键值会被设置到user实例中
userMapper.insertUser(user);
System.out.println(user.getId());
注意:以上方法都需要在MyBatis的配置文件中开启自动生成主键的功能。