`

ibatis获取主键值

阅读更多
<insert id="insert" parameterMap="pm_user_without_id">    
        <![CDATA[   
            INSERT INTO t_user    
                (username,password,emplName,visible)    
            VALUES (?,?,?,?)   
        ]]>    
        <selectKey resultClass="int">    
            <![CDATA[   
                SELECT @@IDENTITY AS ID   
            ]]>    
        </selectKey>    
</insert>   


想取的主键的值,需要加 selectKey这段,而且前面sql语句里面不需要插入主键字段。对于不同的数据库,selectKey语句的写法是不同的。
针对不同数据库的写法如下:

Cloudscape  VALUES IDENTITY_VAL_LOCAL()   
DB2         VALUES IDENTITY_VAL_LOCAL()   
Derby       VALUES IDENTITY_VAL_LOCAL()   
HSQLDB      CALL IDENTITY()   
MySql       SELECT LAST_INSERT_ID()   
SqlServer   SELECT SCOPE_IDENTITY()   
SYBASE      SELECT @@IDENTITY   
ORACLE      SELECT CUSTOM_SQL.NEXTVAL AS ID FROM DUAL  




而且id =(Integer )getSqlMapClientTemplate().insert("addUser", user);
做insert操作返回的是key是一个object对象,需要做类型转换。
分享到:
评论

相关推荐

    MybatisPlus中插入数据后获取该对象主键值的实现

    在MybatisPlus中,插入数据并获取对象的主键值是一个常见的需求,特别是在需要跟踪新插入记录的唯一标识时。MybatisPlus提供了一种简便的方式来实现这一功能。本篇文章将详细解释如何在MybatisPlus中实现这一操作,...

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

    Ibatis通过`useGeneratedKeys`和`keyProperty`属性,配合SQL的`SELECT SEQ_NAME.NEXTVAL FROM DUAL`,可以在插入后自动获取生成的主键值。 3. **Identity(自动增长)**:对于支持自动增长主键的数据库,如MySQL,...

    ibatis 使用手册

    - **Insert**: 插入数据,支持自动获取自增主键值。 - **Update**: 更新数据,可以根据条件更新特定记录。 - **Delete**: 删除数据,根据指定条件删除匹配的记录。 **iBatis SQL Maps入门教程** 入门教程通常从...

    Ibatis框架的核心知识点

    对于支持自动生成主键的数据库,Ibatis 提供了 `&lt;selectKey&gt;` 元素来获取新生成的主键值。在插入语句中,`&lt;selectKey&gt;` 通常置于 `&lt;insert&gt;` 元素内,用于在插入数据后获取数据库生成的主键。例如,对于Oracle,...

    ibatis 中sqlMap配置

    对于序列主键(如Oracle、DB2中的Sequence),需要在插入语句之前配置`&lt;selectKey&gt;`标签来获取主键值。例如: ```xml SELECT SEQ_TEST.NEXTVAL FROM DUAL insert into .... .... ``` 对于MySQL等支持...

    Struts1.2+IBatis操作数据库的案例

    2. 删除(Delete):Mapper XML文件中定义DELETE语句,Action中使用SqlSession的delete方法,通常需要传入一个主键值来确定删除哪条记录。 3. 修改(Update):编写UPDATE语句,Action调用SqlSession的update方法,...

    sqlmap配置.pdf

    在 Oracle 和 DB2 中,需要在插入语句之前配置 selectKey 来获取主键值。例如:&lt;insert id="insertAccount" parameterClass="Account"&gt; &lt;selectKey resultClass="long" keyProperty="sctId"&gt; SELECT SEQ_TEST....

    Ibatis查询Id列表.doc

    ID列表在实际应用中通常用于获取一系列记录的主键值,以便后续进行更复杂的操作或查询。 ### 三、查询Id列表的核心SQL语句 #### SQL语句详解 ```sql resultClass="java.lang.Integer"&gt; &lt;![CDATA[ SELECT GROUP...

    ibatis环境搭建教程

    - **&lt;selectKey&gt;`**:用于生成主键,在某些数据库中可能需要在插入记录前先获取自增主键值。 - **&lt;insert&gt;`**:定义插入操作,可以与`parameterMap`结合使用以支持复杂的参数传递。 - **&lt;resultClass&gt;`**:定义查询...

    iBatis_SqlMap的配置总结[1]

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

    ibatis 一对多 多对多完整映射

    对应于`selectOrdersByUserId`,你需要编写一个SQL查询,它将根据父对象的主键值(这里是`user_id`)来获取子对象。 ```xml SELECT * FROM orders WHERE user_id = #{userId} ``` **多对多关系映射** 多对多...

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

    这是最基础的方式,开发者在插入数据前预先生成主键值,然后将这个值传递给Ibatis。这种方式适用于已知主键生成规则或者有独立主键生成服务的情况。 2. **序列(Sequence)**: 在Oracle等支持序列的数据库中,...

    ibatis_sqlMap的配置总结

    对于MySQL这样的自增主键数据库,则可以在插入语句之后通过`LAST_INSERT_ID()`来获取新生成的主键值: ```xml SELECT LAST_INSERT_ID() insert into ... ``` #### 五、SQL参数传递 iBatis提供了多种方式...

    IBatis.net教程

    - 执行插入操作:使用C#的Mapper.Instance().Insert方法,并传入SQL语句ID和要插入的对象,如果插入操作影响了有主键的表,则可以获取新插入数据的主键值。 - SQL描述文档:在XML文件中,可以详细定义SQL语句的结构...

    ibatis的教程

    当需要返回数据库自动生成的主键值时,可以使用标签来获取,这在SQL Server中常用于获取插入数据后由数据库生成的主键。 当需要获取多行数据时,iBATIS可以返回一个对象集合,每个对象对应于数据表中的一行数据。...

    ibatis常用的sql

    这里的`#memberId#`, `#start#`, `#end#`等都是从传入的`HashMap`对象中获取的键值对。 ### 四、更新操作(部分展示) 最后一条SQL语句展示了一部分更新操作的示例: ```xml update Question set ``` 这条...

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

    在Ibatis中,可以在插入语句后直接获取生成的主键值。 3. **雪花算法(Snowflake)**:这是一种分布式ID生成算法,适合大数据环境下的分布式系统。它将ID分为多个部分,如时间戳、工作节点ID等,保证全局唯一。在...

    ibatis框架实现的增删改查

    在这里,`RETURNING id INTO #{id}`是Oracle数据库特有的语法,用于获取自动生成的主键值。 2. 更新操作 ```xml UPDATE student SET name = #{name}, age = #{age}, address = #{address} WHERE id = #{id...

    ibatis批处理

    此外,`&lt;selectKey&gt;`标签用于在插入后获取自增主键的值,这对于某些数据库系统(如MySQL)是必要的。 总的来说,iBatis的批处理功能通过在代码和配置文件中灵活运用循环,使得开发者能够有效地处理大批量数据操作,...

    iBATIS缓存介绍

    - **1.2.3 数据库**:特定类型的数据库(如BerkeleyDB)由于不支持SQL查询,只提供键值对存储,因此可以作为高性能缓存使用。 **1.3 命中率** 命中率指请求缓存次数与缓存返回正确结果次数的比例。命中率越高,...

Global site tag (gtag.js) - Google Analytics