`

ibatis 获取自增长的主键

阅读更多

 

一、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; 
       }

 

分享到:
评论

相关推荐

    08_ibatis教程_sql主键生成方式.zip

    3. **Identity(自动增长)**:对于支持自动增长主键的数据库,如MySQL,Ibatis可以通过`identityInsert`属性开启自动增长功能。插入数据后,数据库会自动为新记录分配一个唯一的主键值。 4. **HiLo算法**:在大...

    08_传智播客ibatis教程_sql主键生成方式

    2. **身份列(Identity)**:在MySQL、SQL Server等支持自动增长的数据库中,可以设置某一列为主键并自动递增。在Ibatis中,可以在插入语句后直接获取生成的主键值。 3. **雪花算法(Snowflake)**:这是一种分布式...

    iBatis_SqlMap的配置总结[1]

    4. **主键获取策略**: - **先获取主键**:`&lt;selectKey&gt;`可以在插入语句之前配置,如Oracle的Sequence,需要在插入前确定主键值。 - **后获取主键**:对于自动增长的主键,如MySQL,`&lt;selectKey&gt;`可以在插入语句...

    经典开源插件之ibatis

    - **创建数据库与表结构**:根据示例中的SQL语句创建名为`itcast`的数据库及`student`表,表中包括`id`(主键自增长)、`firstname`和`lastname`三个字段。 - **实体类定义**:定义一个名为`Student`的Java类,...

    Ibatis入门级教程

    Ibatis提供了多种主键生成策略,比如`identity`(标识列,适用于自动增长类型)、`sequence`(序列,Oracle常用)和`guid`(全局唯一标识符)。在Oracle环境下,我们通常会创建一个序列对象,然后在映射文件中配置...

    ibatis PPT

    对于自动增长的主键,iBatis 提供了 `&lt;selectKey&gt;` 标签来处理。在插入数据后,这个标签会执行一个单独的 SELECT 语句来获取新生成的主键值,并将其绑定到 Java 对象的相应属性上。 **优点** iBatis 的优点包括: 1...

    Ibatis入门教程

    - 接着创建`t_user`表,包含三个字段:`id`(自增长主键)、`user_name`(用户名)和`email`(邮箱)。 2. **创建存储过程**: - 定义一个存储过程`showUserData`,用于从`t_user`表中查询所有用户的详细信息,并...

    ibatis+mysql5.1的增删改查

    这个表包含四个字段:`contactid`作为主键,`firstname`,`lastname`,和`email`。通常,`contactid`会被设置为自动增长,以便在插入新记录时自动生成唯一的标识。 接下来,我们需要在Ibatis的配置文件(例如:`...

    mybatis insert返回主键代码实例

    在上面的代码中,`selectKey` 元素将获取最后插入的自动增长的主键值,并将其赋值给参数对象的 `id` 字段。 在实际应用中,我们可能需要在插入数据之后执行其他操作,例如,获取插入后的主键值,以便进行下一步的...

    hibernate概述

    - **iBATIS**:适合改造遗留系统或复用既有数据库,但其持久层封装不够彻底,不完全支持面向对象编程。 - **Hibernate**:作为最成熟、流行的ORM框架,Hibernate拥有强大的功能,并已成为Java持久层的事实标准。它...

    MyBaitsPlus快速入门,阿里java技术专家面试.pdf

    在给出的示例中,`type = IdType.AUTO`表示自动增长,意味着数据库字段需要设置为自增类型。如果数据库未设置自增,插入数据时可能会抛出异常。 插入操作的示例展示了如何调用`insert()`方法向数据库中插入一条记录...

    Hibernate笔记

    - **iBATIS:** 另一款流行的ORM框架,特别适用于那些需要对SQL语句进行高度定制化的场景。 - **JPA:** Java Persistence API是Java平台标准的一部分,提供了一种统一的方法来处理持久化。 #### 三、Hibernate...

    mybatis文档

    - MySQL:利用自增长特性,通过 SQL 语句 `SELECT LAST_INSERT_ID()` 获取最后插入行的 ID。 #### 7. 关联关系处理 - **处理方式**:支持多种关联查询方式,包括连接查询和两次查询方式。 - 一对多:使用连接...

    Mybatis之接口式编程.doc

    在开始之前,我们需要创建一个名为`student`的数据库表,包含字段`id`(主键,自增长),`name`(姓名)和`age`(年龄)。这将作为我们的数据存储基础。 ```sql CREATE TABLE `student` ( `id` int(11) NOT NULL ...

Global site tag (gtag.js) - Google Analytics