mybatisバッチ挿入とプライマリ・キーの戻り
2330 ワード
転載先:https://blog.csdn.net/u014336799/article/details/52023887
まず、データベース接続構成で一括操作を許可するように設定します(接続データソースパラメータ構成にallowMultiQueries=trueが追加されました)
自己増加プライマリ・キーの生成をサポートするデータベースには、Mapperが必要である.xmlのinsertノードでは、useGenerateKeysとkeyPropertyが使用されます.
プライマリ・キーを返すには、次の前提条件が必要です(プライマリ・キーを返す必要がない場合は無視します).
1、Mybatisバージョンを3.3.1にアップグレードする.
2、Daoで@param注記は使用できません.
3、Mapper.xmlではlist変数を使用してDaoの集合を受け入れます.
UserService:
UserDao:
mapper.xml
ここではcollection=「list」を使用してコレクションを巡回します.keyProperty="userId"は、UserオブジェクトのuserId属性に対応します.
---------------------------------------------------------------------------
返されるプライマリ・キーを取得する必要がない場合は、次のコードを使用します.
UserDao:
mapper.xml
ここではcollection=「list」を使用してコレクションを巡回します.keyProperty="userId"は、UserオブジェクトのuserId属性に対応します.
---------------------------------------------------------------------------
まず、データベース接続構成で一括操作を許可するように設定します(接続データソースパラメータ構成にallowMultiQueries=trueが追加されました)
spring:
profiles: dev
datasource:
name: testDatabase
url: jdbc:mysql://localhost:3306/testTable?allowMultiQueries=true
自己増加プライマリ・キーの生成をサポートするデータベースには、Mapperが必要である.xmlのinsertノードでは、useGenerateKeysとkeyPropertyが使用されます.
プライマリ・キーを返すには、次の前提条件が必要です(プライマリ・キーを返す必要がない場合は無視します).
1、Mybatisバージョンを3.3.1にアップグレードする.
2、Daoで@param注記は使用できません.
3、Mapper.xmlではlist変数を使用してDaoの集合を受け入れます.
UserService:
List userList = new ArrayList();
User user = new User ();
user.setName(" ");
userList.add(user);
user.setName(" ");
userList.add(user);
user.setName(" ");
userList.add(user);
int result = userDao.insertUsers(userList);
if(result > 0){
for(User user : userList){
System.out.print(user.getUserId());// ,
}
}
UserDao:
int insertUsers(List userList);// @param
mapper.xml
ここではcollection=「list」を使用してコレクションを巡回します.keyProperty="userId"は、UserオブジェクトのuserId属性に対応します.
insert into user (name,cdate)
values
(#{item.name,jdbcType=VARCHAR}, #{item.cdate,jdbcType=VARCHAR})
---------------------------------------------------------------------------
返されるプライマリ・キーを取得する必要がない場合は、次のコードを使用します.
UserDao:
int insertUsers(@Param("userList") List userList);// @param ,xml
mapper.xml
ここではcollection=「list」を使用してコレクションを巡回します.keyProperty="userId"は、UserオブジェクトのuserId属性に対応します.
insert into user (name,cdate)
values
(#{item.name,jdbcType=VARCHAR}, #{item.cdate,jdbcType=VARCHAR})
---------------------------------------------------------------------------