Java web開発でMyBatisを使用してデータベースに挿入してプライマリ・キーを返す方法の紹介
4064 ワード
1、先に挿入してから照会する(効率が低い)
2、エンティティクラスのマッピングファイル「*Mapper.xml」の設定でメインキーを返す:(推奨)
3、MySQLデータベースでテーブルを作成するときにフィールドの自己成長が設定されている場合、エンティティークラスのマッピングファイル「*Mapper.xml」には、次のように書きます.(推奨)
`User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment(" ");
System.out.println(" :"+user.getUserId());
userDao.insertAndGetId(user);//
User myUser=userDao.findUserByName(user.getName());
System.out.println(" :"+myUser.getUserId()); `
2、エンティティクラスのマッピングファイル「*Mapper.xml」の設定でメインキーを返す:(推奨)
"insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
useGeneratedKeys="true"
keyProperty="userId" Id userId 。
parameterType="com.chenzhou.mybatis.User"
, resultType , 。
uerId getter() and setter();
3、MySQLデータベースでテーブルを作成するときにフィールドの自己成長が設定されている場合、エンティティークラスのマッピングファイル「*Mapper.xml」には、次のように書きます.(推奨)
<insert id="insertProduct" parameterType="domain.model.ProductBean" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="productId">
SELECT LAST_INSERT_ID()
selectKey>
INSERT INTO t_product(productName,productDesrcible,merchantId)values(#{productName},#{productDesrcible},#{merchantId});
insert>
resultType , 。
order="AFTER" , 。
BEFORE AFTER。
BEFORE, , keyProperty 。
AFTER, , selectKey - Oracle ,
keyProperty="userId" Id userId 。
SELECT LAST_INSERT_ID() MySQL Id.
uerId getter() and setter();