`
duooluu
  • 浏览: 59029 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

ibatis插入记录时获取mysql自增长主键效率不是一般的慢

阅读更多
ibatis需要获取插入记录的id一般的配置如下
<insert id="insert" parameterClass="XClass" >
    insert into t_table ...
   
    <selectKey resultClass="int" type="post" keyProperty="id" >
        select LAST_INSERT_ID() as value
    </selectKey> 
</insert>


也就是插入以后再查询一下最后的一个id,然后填充到对象的id属性

最近做了一个测试,在插入10000条记录的时候,如果通过上面的方式获取记录的id,平均时间约:9800ms

如果去掉获取主键的配置,平均时间:4300ms

相差了一倍。

鉴于此,我们采用在程序中生成主键,方法很简单,也就不记录了
分享到:
评论
2 楼 Sev7en_jun 2012-11-20  
同问!!!!!!!
shawnfree 写道
怎么做到插入10000条数据需要4300ms的,我做的批量插入需要用26870ms啊,我用ibatis进行批量插入的。

1 楼 shawnfree 2011-01-03  
怎么做到插入10000条数据需要4300ms的,我做的批量插入需要用26870ms啊,我用ibatis进行批量插入的。

相关推荐

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

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

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

    本教程“08_传智播客ibatis教程_sql主键生成方式”主要聚焦于如何在Ibatis中处理SQL查询时的主键生成策略,这对于确保数据的一致性和完整性至关重要。 Ibatis允许开发者自定义SQL语句,包括插入、更新、删除和查询...

    iBatis_SqlMap的配置总结[1]

    iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句与Java代码分离,从而提高了开发效率和可维护性。SqlMap是iBatis的核心配置文件,用于定义数据库交互的各种操作。以下是关于iBatis_SqlMap配置的一些关键知识...

    经典开源插件之ibatis

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

    ibatis+mysql5.1的增删改查

    通常,`contactid`会被设置为自动增长,以便在插入新记录时自动生成唯一的标识。 接下来,我们需要在Ibatis的配置文件(例如:`mybatis-config.xml`)中添加数据库连接的相关配置,如数据源、驱动等,确保Ibatis...

    Ibatis入门教程

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

    mybatis insert返回主键代码实例

    在使用 MyBatis 进行数据插入时,需要使用 `selectKey` 元素来获取插入后的主键值。`selectKey` 元素可以在插入语句之前或之后执行,具体的实现方法取决于所使用的数据库系统。 对于 Oracle 数据库,使用 `select...

    Hibernate笔记

    - **identity:** 如果数据库支持自动增长,设计表时指定该功能适用于MySQL, SQLServer。 - **sequence:** 如果数据库支持sequence,主键由sequence生成,适用于Oracle。 - **native:** 根据数据库类型自动选择...

    mybatis文档

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

    hibernate概述

    - **identity**:适用于支持自动增长列的数据库,如MySQL和SQL Server。 - **sequence**:针对Oracle、DB2等支持序列的数据库。 - **uuid**:生成128位的UUID字符串主键。 **Configuration类** `Configuration`类...

    Mybatis之接口式编程.doc

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

Global site tag (gtag.js) - Google Analytics