Mybatisで自動採番された値を取得
MyBatisで自動採番された値を取得する方法は、insert操作の後に自動生成されたキーを取得する必要があります。
一般的には、@Optionsアノテーションを使って設定します。
例: test_tableへの自動採番とキーの取得
1. データベーステーブル: test_table
CREATE TABLE test_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) );
2. Javaクラス: TestEntity
public class TestEntity { private Integer id; private String name; // GetterとSetter public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3. Mapperインターフェース: TestMapper
public interface TestMapper { @Insert("INSERT INTO test_table(name) VALUES(#{name})") @Options(useGeneratedKeys = true, keyProperty = "id") void insertTestEntity(TestEntity testEntity); }
4. 使用方法
TestEntity testEntity = new TestEntity(); testEntity.setName("example name"); TestMapper mapper = sqlSession.getMapper(TestMapper.class); mapper.insertTestEntity(testEntity); Integer generatedId = testEntity.getId(); System.out.println("Generated ID: " + generatedId);
@OptionsアノテーションのuseGeneratedKeysをtrueに設定することで、自動生成されたキーが挿入後にtestEntityのidプロパティに設定されます。
これにより、insert操作の後に自動採番された値を取得できます。