<>注意:该方法只适用于 MySQL 和 SQLServer数据库
<>使用属性useGeneratedKeys和keyProperty
*
useGeneratedKeys(true/false):设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中
* keyProperty : 填写 java 对象的字段名称
<>使用样例
mapper
<insert id="addUser" parameterType="xxx.xxx.model.xx" useGeneratedKeys="true"
keyProperty="id"> insert into user(username, name, password) values
(#{item.username}, #{item.name}, #{item.password})</insert>
service
public void addUser(User user) { systemMapper.addUser(user); user.getId(); }
<>user.getId() 获取不到最新主键id
检查 dao 层接口是否使用了 @Param 注解
例如:
void addUser(@Param("item") User user);
那么修改 mapper.xml
<insert id="addUser" parameterType="xxx.xx.xx" useGeneratedKeys="true"
keyProperty="item.id"> insert into user(username, name, password) values
(#{item.username}, #{item.name}, #{item.password})</insert>