Mybatis insert操作は自己成長のプライマリ・キーidを返す
2086 ワード
データを挿入すると、idが自動的に生成される可能性が高いので、挿入したばかりのidを返したい場合はどうすればいいのでしょうか.
mysqlデータでは、insertの下にselectKeyを追加して、返されるタイプと値を指定できます.
方法1:
ここでresultTypeは、返されるタイプを表します.IDは、戻ってきた挿入したばかりのIDです
方法2:
mysqlデータではinsertの下にuseGeneratedKeys=「true」keyProperty=「id」を追加できます.
JAvaコード取得id
mysqlデータでは、insertの下にselectKeyを追加して、返されるタイプと値を指定できます.
方法1:
SELECT LAST_INSERT_ID() AS ID
insert into tb_content_category (id, parent_id, name,
status, sort_order, is_parent,
created, updated)
values (#{id,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{status,jdbcType=INTEGER}, #{sortOrder,jdbcType=INTEGER}, #{isParent,jdbcType=BIT},
#{created,jdbcType=TIMESTAMP}, #{updated,jdbcType=TIMESTAMP})
ここでresultTypeは、返されるタイプを表します.IDは、戻ってきた挿入したばかりのIDです
方法2:
mysqlデータではinsertの下にuseGeneratedKeys=「true」keyProperty=「id」を追加できます.
insert into tb_content_category (id, parent_id, name,
status, sort_order, is_parent,
created, updated)
values (#{id,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{status,jdbcType=INTEGER}, #{sortOrder,jdbcType=INTEGER}, #{isParent,jdbcType=BIT},
#{created,jdbcType=TIMESTAMP}, #{updated,jdbcType=TIMESTAMP})
JAvaコード取得id
TbContentCategory record = new TbContentCategory();
record.setParentId(parentId);
record.setName(name);
Date date = new Date();
record.setCreated(date);
record.setUpdated(date);
record.setStatus(1);
record.setSortOrder(1);
record.setIsParent(false);
TbContentCategoryMapper.insert(record);
//insert ,id record ,
Long id = record.getId();