mybatisがinsert操作をするとき、挿入したデータのidを返すにはどうすればいいですか?
1918 ワード
1、useGeneratedKeys="true"は自己成長のIDを取得することができ、自己成長方式を持つデータベース(mysql、mssqlなどがサポートされているがoracleはサポートされていない)のみをサポートするため、selectKeyを使用してegを取得することができる.
2、Oracleなどの自動生成をサポートしていないプライマリ・キーについては、次の方法を使用できます.
eg:
1つ目のより良い解決策:
メソッド:mapperでkeyPropertyプロパティを指定します.例:Xmlコードコレクションコード
前述したように、insertではkeyProperty="userId"を指定し、userIdは挿入されたUserオブジェクトのプライマリ・キー属性を表します.
この文書はhttps://blog.csdn.net/RAPIER512/article/details/51198684、不適切な場合は削除をお知らせください
insert into table(...) values (...)
SELECT LAST_INSERT_ID() AS id
2、Oracleなどの自動生成をサポートしていないプライマリ・キーについては、次の方法を使用できます.
eg:
select my_seq.nextval from dual
...
1つ目のより良い解決策:
メソッド:mapperでkeyPropertyプロパティを指定します.例:Xmlコードコレクションコード
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
前述したように、insertではkeyProperty="userId"を指定し、userIdは挿入されたUserオブジェクトのプライマリ・キー属性を表します.
User.java
Java
public class User {
private int userId;
private String userName;
private String password;
private String comment;
//setter and getter
}
UserDao.java
Java
public interface UserDao {
public int insertAndGetId(User user);
}
:
Java
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment(" ");
System.out.println(" :"+user.getUserId());
userDao.insertAndGetId(user);//
System.out.println(" :"+user.getUserId());
:
Shell
:0
:15
, id 15
この文書はhttps://blog.csdn.net/RAPIER512/article/details/51198684、不適切な場合は削除をお知らせください