但是,在默认情况下,insert操作返回的是一个int值,它并非表示主键id,而是表示当前SQL语句影响的行数。 接下来,我们依次从options注解和SQL两个方面,了解MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中。 Mybatis的@Options注解 mybatis的@Options注解能够拿到对象自增的id的值,能够设置缓存时...
插入数据时不插入主键,让主键自增,但是需要知道插入的数据主键是啥。 注意: insert方法的返回值,表示成功添加的条数,和主键ID无关 实现:添加注解 @Options() 示例 @Insert("insert into table_name (num,grade,name,age,sex) values(#{num},#{grade},#{name},#{age},#{sex}") @Options(useGeneratedKeys...
Mybatis注解方式insert时获取返回的自增主键 使用@options注解 @Insert("insert into scenario_storage " + "(user_id , scenario_name , nodes_name , publish_subscribe_name , test_design_name , type_define_name , upload_url , create_time ,remark)" + "values (#{userId} , #{scenarioName} , ...
需要用以上两个注解实现,如此 Integer insert = projectMapper.addCmpProject(project); 1. 执行之后的project中就已经包含主键了
useGeneratedKeys:必须设置为true,否则无法获取到主键id。 keyProperty:设置为POJO对象的主键id属性名称。 keyColumn:设置为数据库记录的主键id字段名称。 完全的写法如下: @InsertProvider(type = SplitterRecordDaoProvider.class,method ="addDownloadRecordSql") ...
SELECT LAST_INSERT_ID() </selectKey> </insert> AI代码助手复制代码 (1)这里设置的MySQL的主键是自增的,SELECT LAST_INSERT_ID()返回的是最后一个ID值的意思。 (2)传入的参数必须为对象,不能为string,int之类的单个参数 (3)order属性,取值范围BEFORE/ AFTER,指定是在insert语句前还是后执行selectKey操作。AF...
* keyProperty 代表数据库记录主键字段* keyColumn 代表 java对象成员属性名 <!-- 插入数据:返回记录主键id值 --> <insert id="insert" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into t_user (name,age) values (#{name},#{age}) </insert> 2 接口注解处理 在接口映射器中...
在使用Mybatis过程中,因为一些insert操作需要同时获取自增长的主键,但是Mybatis提供的注解形式的curd并没有提供返回值。 我们可以通过添加@Options(useGeneratedKeys = true, keyProperty = "user_id")注解后,主键id会回填到对象指定的字段,需要主动获取。
在MyBatis中,当执行insert语句时,如果需要返回自动生成的主键,可以通过以下几种方式实现: 1. 使用useGeneratedKeys和keyProperty属性 这是MyBatis提供的一种简洁方式,用于获取数据库自动生成的主键,并将其赋值给领域模型的对应属性。 mapper.xml配置: xml <insert id="insertDepartment" parameterType="com.example....