一、mysql
1、设置主键为自增长,插入的时候可以插入NULL或者直接不插入,即可完成主键的自增长
2、插入完成以后需要获取添加的主键,可以使用select LAST_INSERT_ID() 来获取,使用方式参照:
<insert id="insert" parameterClass="customer">
insert into customer(address,postcode,sex,name) values(#address#,#postcode#,#sex#,#name#)
<selectKey keyProperty="id" resultClass="long">
select LAST_INSERT_ID()
</selectKey>
</insert>
二、oracle
1、通过sequence获取ID再插入
<selectKey resultClass="int" keyProperty="id">
SELECT SEQ_CUSTOM.NEXTVAL AS ID FROM DUAL
</selectKey>
insert into customer(ID,address,postcode,sex,name) values(#id#,#address#,#postcode#,#sex#,#name#)
其中
public class Customer {
private Long id;
private String name;
private String address;
private String postcode;
private String sex;
}
分享到:
相关推荐
3. **Identity(自动增长)**:对于支持自动增长主键的数据库,如MySQL,Ibatis可以通过`identityInsert`属性开启自动增长功能。插入数据后,数据库会自动为新记录分配一个唯一的主键值。 4. **HiLo算法**:在大...
2. **身份列(Identity)**:在MySQL、SQL Server等支持自动增长的数据库中,可以设置某一列为主键并自动递增。在Ibatis中,可以在插入语句后直接获取生成的主键值。 3. **雪花算法(Snowflake)**:这是一种分布式...
4. **主键获取策略**: - **先获取主键**:`<selectKey>`可以在插入语句之前配置,如Oracle的Sequence,需要在插入前确定主键值。 - **后获取主键**:对于自动增长的主键,如MySQL,`<selectKey>`可以在插入语句...
- **创建数据库与表结构**:根据示例中的SQL语句创建名为`itcast`的数据库及`student`表,表中包括`id`(主键自增长)、`firstname`和`lastname`三个字段。 - **实体类定义**:定义一个名为`Student`的Java类,...
Ibatis提供了多种主键生成策略,比如`identity`(标识列,适用于自动增长类型)、`sequence`(序列,Oracle常用)和`guid`(全局唯一标识符)。在Oracle环境下,我们通常会创建一个序列对象,然后在映射文件中配置...
对于自动增长的主键,iBatis 提供了 `<selectKey>` 标签来处理。在插入数据后,这个标签会执行一个单独的 SELECT 语句来获取新生成的主键值,并将其绑定到 Java 对象的相应属性上。 **优点** iBatis 的优点包括: 1...
- 接着创建`t_user`表,包含三个字段:`id`(自增长主键)、`user_name`(用户名)和`email`(邮箱)。 2. **创建存储过程**: - 定义一个存储过程`showUserData`,用于从`t_user`表中查询所有用户的详细信息,并...
这个表包含四个字段:`contactid`作为主键,`firstname`,`lastname`,和`email`。通常,`contactid`会被设置为自动增长,以便在插入新记录时自动生成唯一的标识。 接下来,我们需要在Ibatis的配置文件(例如:`...
在上面的代码中,`selectKey` 元素将获取最后插入的自动增长的主键值,并将其赋值给参数对象的 `id` 字段。 在实际应用中,我们可能需要在插入数据之后执行其他操作,例如,获取插入后的主键值,以便进行下一步的...
- **iBATIS**:适合改造遗留系统或复用既有数据库,但其持久层封装不够彻底,不完全支持面向对象编程。 - **Hibernate**:作为最成熟、流行的ORM框架,Hibernate拥有强大的功能,并已成为Java持久层的事实标准。它...
在给出的示例中,`type = IdType.AUTO`表示自动增长,意味着数据库字段需要设置为自增类型。如果数据库未设置自增,插入数据时可能会抛出异常。 插入操作的示例展示了如何调用`insert()`方法向数据库中插入一条记录...
- **iBATIS:** 另一款流行的ORM框架,特别适用于那些需要对SQL语句进行高度定制化的场景。 - **JPA:** Java Persistence API是Java平台标准的一部分,提供了一种统一的方法来处理持久化。 #### 三、Hibernate...
- MySQL:利用自增长特性,通过 SQL 语句 `SELECT LAST_INSERT_ID()` 获取最后插入行的 ID。 #### 7. 关联关系处理 - **处理方式**:支持多种关联查询方式,包括连接查询和两次查询方式。 - 一对多:使用连接...
在开始之前,我们需要创建一个名为`student`的数据库表,包含字段`id`(主键,自增长),`name`(姓名)和`age`(年龄)。这将作为我们的数据存储基础。 ```sql CREATE TABLE `student` ( `id` int(11) NOT NULL ...