让iBatis中的insert返回主键 [ibatis insert 返回 自增主键]
<!-- 为了使insert操作能够返回插入记录的id,必须为insert写一个selectKey -->
<!-- 下面是针对Oracle的写法,Oracle没有autoincrement,而是用触发器实现的 CURRVAL是在触发器中定义的 --> <insert id="insertRemark" parameterClass="RemarkInfo"> insert into SGS_REMARK(REMARK) values(#remark#) <selectKey resultClass="int" keyProperty="id" > SELECT S_SGS_REMARK.CURRVAL AS ID FROM DUAL </selectKey> </insert>
<!-- 下面是针对MySQL的写法 --> <!-- <selectKey resultClass="int" keyProperty="id" > SELECT @@IDENTITY AS id </selectKey> -->
|
其中Mysql中也可以这么写(首推方法):
<insert id="tijiaoShensuQiantui" parameterClass="qiandao">
insert into ur_sign_date_shensu ( `auditing_user_id` ,`shensu_time`,`shensu_note`,`shensu_date_time`,`shensu_state`,`sign_date_id`)
values(#auditingUserId#,#shensuTime#,#shensuNote#,#shensuDateTime#,1,#id_PK#);
<selectKey resultClass="String" keyProperty="signId" >
SELECT last_insert_id() as signId ;
</selectKey>
</insert>
signId必须是qiandao这个bean里的属性
- 大小: 7.1 KB
分享到:
相关推荐
在Ibatis中,只需在Mapper XML文件中的`<insert>`标签中设置`useGeneratedKeys="true"`和`keyProperty="id"`,就可以让数据库自动生成主键。 4. **雪花算法(Snowflake Algorithm)**: 在分布式环境下,为了保证...
在Ibatis的映射文件中,`<insert>`标签内使用`<selectKey>`子标签可以定义主键生成逻辑。例如: ```xml <insert id="insertUser" parameterType="com.example.User"> INSERT INTO users(name, email) VALUES (#{...
本文将详细介绍 MyBatis 中插入返回主键代码实例的实现方法。 在使用 MyBatis 进行数据插入时,需要使用 `selectKey` 元素来获取插入后的主键值。`selectKey` 元素可以在插入语句之前或之后执行,具体的实现方法取...
总结来说,iBatis中的SQLMap配置涉及到命名空间、别名、插入操作、主键获取、参数类型和结果映射等多个方面,理解和熟练掌握这些知识点对于高效地使用iBatis框架至关重要。通过合理的配置,可以有效地将Java代码与...
在本文中,我们将通过示例代码,介绍如何使用 Mybatis-plus 实现主键自增和自动注入时间。 首先,我们需要在 pom.xml 文件中添加 Mybatis-plus 的依赖项: ```xml <groupId>com.baomidou</groupId> ...
对于MySQL这样的自增主键数据库,则可以在插入语句之后通过`LAST_INSERT_ID()`来获取新生成的主键值: ```xml <insert id="insertAccount" parameterClass="Account"> SELECT LAST_INSERT_ID() insert into ....
- **后获取主键**:对于自动增长的主键,如MySQL,`<selectKey>`可以在插入语句之后配置,利用`LAST_INSERT_ID()`获取自增主键。 5. **SQL参数(ParameterClass)**: - 插入操作:`parameterClass`指定传入参数...
在映射文件中,我们可以定义`<resultMap>`来映射对象属性和字段,使用`<id>`、`<result>`等元素来指定主键和普通字段。此外,还可以使用`<select>`、`<insert>`、`<update>`和`<delete>`标签来定义SQL语句,它们可以...
- **插入操作**:`insert()`方法用于将一个对象插入到数据库中,它会自动处理主键生成策略,如果表有自增主键,IBATIS会自动填充。 - **更新操作**:`update()`方法用于更新已存在的记录,它需要传入待更新的对象,...
- `<insert>`:插入记录,使用`useGeneratedKeys`和`keyProperty`获取自增主键。 - `<update>`:更新记录。 - `<delete>`:删除记录。 4. **Mapper接口** - 为了方便Java代码的调用,可以创建一个对应的Mapper...
1. **增加记录**:在iBatis中,新增数据通常通过`<insert>`标签实现。你需要在XML配置文件中编写SQL插入语句,然后在Java代码中创建一个实体对象,将对象传入到Mapper接口的方法中,执行`insert()`方法。iBatis会...
此外,`<selectKey>`标签用于在插入后获取自增主键的值,这对于某些数据库系统(如MySQL)是必要的。 总的来说,iBatis的批处理功能通过在代码和配置文件中灵活运用循环,使得开发者能够有效地处理大批量数据操作,...
1. **表结构**:开发者需要在数据库中创建"Test"表,指定其字段类型和约束,如id为主键且自增。 2. **SQL查询**:iBatis允许开发者编写复杂的SQL查询,包括SELECT、INSERT、UPDATE和DELETE语句。在MvcIbatis项目中...
对于需要自增主键的表,SQLMap支持通过`<id>`元素配置自动获取生成的主键。 #### 存储过程 除了标准的SQL语句,SQLMap还支持调用数据库存储过程。 #### ParameterClass和ParameterMap `ParameterClass`定义了传入...
- **创建数据库与表结构**:根据示例中的SQL语句创建名为`itcast`的数据库及`student`表,表中包括`id`(主键自增长)、`firstname`和`lastname`三个字段。 - **实体类定义**:定义一个名为`Student`的Java类,...
例如,插入操作可以通过`<insert>`标签完成,其中的`parameterType`指定传入参数的类型,`useGeneratedKeys`和`keyProperty`用于获取自增主键的值。 ```xml <insert id="insertUser" parameterType=...
3. `<insert>`:定义了一个插入语句,包含ID、parameterMap、resultMap、statementType等属性,可能还包括useGeneratedKeys和keyProperty等用于处理自增主键的设置。 4. `<update>`:定义了一个更新语句,同样有ID、...
- **<selectKey>`**:用于生成主键,在某些数据库中可能需要在插入记录前先获取自增主键值。 - **<insert>`**:定义插入操作,可以与`parameterMap`结合使用以支持复杂的参数传递。 - **<resultClass>`**:定义查询...
- **自动生成的主键**:对于INSERT操作,可以通过设置`useGeneratedKeys="true"`来启用主键自动生成。 - **存储过程**:支持调用数据库的存储过程,并通过`<call>`标签定义。 - **`parameterClass`和`parameterMap...
在映射文件中,iBATIS提供了强大的映射机制,比如自动类型转换、结果集嵌套处理、自动生成主键等。例如,和可以将查询结果的列名映射到Java对象的属性上,元素可以根据特定列的值来决定如何映射结果集,实现多态查询...