在MyBatis中,当执行insert语句时,如果需要返回自动生成的主键,可以通过以下几种方式实现: 1. 使用useGeneratedKeys和keyProperty属性 这是MyBatis提供的一种简洁方式,用于获取数据库自动生成的主键,并将其赋值给领域模型的对应属性。 mapper.xml配置: xml <insert id="insertDepartment" parameterType="com.example....
在 insert 元素结束后,我们可以使用 SELECT LAST_INSERT_ID() 函数获取插入记录的主键 ID:<insert id="insertUser" parameterType="User" useGeneratedKeys="false"> insert into user (name, age) values (#{name}, #{age}) <selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER">...
<selectKey>标签的order属性默认值为:BEFORE,所以,如果不声明的话,是在执行insert语句之前,拿到主键;AFTER,代表的是:执行insert之后,获取主键。Oracle需要在插入之前,通过序列确定主键;因为mysql主键有自增特性,所以我们只有在插入之后,才能拿到主键。方式二:使用@Insert+@SelectKeyORACLE@Insert("INSERT INTO JKDA_USER ...
<selectKey>标签的order属性默认值为:BEFORE,所以,如果不声明的话,是在执行insert语句之前,拿到主键; AFTER,代表的是:执行insert之后,获取主键。 Oracle需要在插入之前,通过序列确定主键; 因为mysql主键有自增特性,所以我们只有在插入之后,才能拿到主键。 方式二:使用@Insert+@SelectKey ORACLE @Insert("INSERT INTO JK...
在MyBatis中,如果你希望在插入数据时返回主键值,可以通过在<insert>标签中使用useGeneratedKeys="true"属性和keyProperty属性来实现。useGeneratedKeys属性表示使用数据库生成的主键,而keyProperty属性则指定用来接收这个生成主键的属性名。 以下是一个简单的例子:
1.Mapper的写法,返回的这个int是受影响的行号 int insertNewUser(User newUser); 1. 2.xml的写法 <!--返回主键 形式1 --> <insert id="saveReturnPK1" parameterType="cn.lyn4ever.bean.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO `test`.`tb_user`(`username`, age) VALUES(#{...
MyBatis中insert操作返回主键的实现方法 在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式: ...
2.使用selectKey元素:selectKey元素允许你定义一个查询来获取主键值,并将其设置到插入语句中。<insert ...
<insert id="add"parameterType="EStudent">insert intoTStudent(name,age)values(#{name},#{age})</insert 四、执行INSERT操作后获取记录主键 mapper接口代码: 代码语言:javascript 复制 /** * 添加学生信息 * @param student 学生实例 * @return 成功操作的记录数目 ...
insert into ssm_order (order_message) values (#{orderMessage,jdbcType=VARCHAR}) </insert> ... useGeneratedKeys="true" :设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。 keyProperty:赋值的对象的属性名称,我这里填的是id,表示将id返回到对象中 ...