`
wenxin2009
  • 浏览: 320642 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ibatis批量插入数据

    博客分类:
  • java
阅读更多

为了减少数据库访问压力,可以在适当的情况下采用Ibatis批量执行。例子如下:

import java.util.ArrayList;
/**
 * 关健字缓存(通过单例来处理)
 *
 * @author
 * @version v 0.1 2012-3-16 下午05:14:06
 */
public class KeywordSingleton extends ArrayList<String>{

    /**  */
    private static final long serialVersionUID = -6177039723625154736L;
    /** 缓存关健字size */
    public static final int            cacheSize        = 10;
   
    private static final KeywordSingleton instance =  new KeywordSingleton();
    /**
     * 私有构造方法
     */
    private KeywordSingleton(){}
    /**
     * 返回唯一实例
     * @return
     */
    public static KeywordSingleton getInstance(){
        return instance;
    }
}

//方法

public void recordKeyword(final String keyword) {
        super.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
            @Override
            public Object doInSqlMapClient(SqlMapExecutor executor)
                    throws SQLException {
                executor.startBatch();// 开始批处理

               //采用单例进行保存数据
                KeywordSingleton.getInstance().add(keyword);
                if (KeywordSingleton.getInstance().size() == KeywordSingleton.cacheSize) {
                    for (int i = 0; i < KeywordSingleton.getInstance().size(); i++) {
                        executor.update("KEYWORDS.recordKeyword", KeywordSingleton
                                .getInstance().get(i));
                    }
                    executor.executeBatch();// 执行批处理
                    KeywordSingleton.getInstance().clear();// 执行完后清空数组
                    log.info("清空关健字缓存数组:"
                            + KeywordSingleton.getInstance().size());
                }
                return null;
            }
        });
    }
   

 

分享到:
评论
3 楼 wiwi1024 2015-06-25  
PerfectHand 写道
为什么没有 sql那一部分呢 求sql 那一部分

mongodb是不需要写sql语句的
2 楼 wenxin2009 2013-11-14  
sql那部分就跟平常sql一样,一个update语句
1 楼 PerfectHand 2013-09-27  
为什么没有 sql那一部分呢 求sql 那一部分

相关推荐

    ibatis3批量插入

    通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...

    ibatis的批量插入DAO实例

    本篇将深入探讨如何在Ibatis中实现批量插入数据的DAO(Data Access Object)实例,以及相关的源码分析。 首先,Ibatis允许我们通过SQL映射文件来定义SQL语句,这种方式比传统的JDBC更加灵活且易于维护。批量插入...

    ibatis批量存储

    例如,当需要批量插入多条数据时,可以将数据集放入List中,然后在SQL语句中使用iterate标签遍历这个List。iterate标签的基本语法是`(" close=")" conjunction=","/&gt;`,其中`property`指定了集合属性的名称,`open`...

    Mybatis 3+Mysql 实现批量插入

    在IT领域,尤其是在数据库操作与框架应用中,批量插入数据是一项常见且重要的需求。相比于单条插入,批量插入能够显著提升数据处理效率,减少数据库I/O操作,从而提高整体性能。本文将深入探讨如何利用MyBatis框架...

    ibatis批量处理

    ### iBatis批量处理知识点详解 #### 一、iBatis基本实现 iBatis(现已更名为MyBatis)是一款优秀的持久层框架,它支持定制化SQL、存储过程及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果...

    ibatis list

    在本文中,我们将深入探讨iBatis框架中的“ibatis批量”功能,特别是如何利用iBatis进行批量数据处理,包括批量插入、更新和删除操作。我们将通过解析提供的文件片段来阐述这一知识点,重点放在如何使用`&lt;iterate&gt;`...

    ibatis结合oracle批量插入三种方法的测评

    这种方法使用iterate标签来批量插入数据,但是Oracle不支持一个insert语句中包含多个values的方式。这意味着,如果你想插入多行数据,你需要执行多个insert语句,这将导致性能问题。例如: ``` &lt;![CDATA[ insert ...

    ibatis 批量 增删改查

    首先,批量插入(Insert Batch)在Ibatis中可以通过动态SQL来实现。在映射文件中,你可以定义一个包含多个`&lt;insert&gt;`标签的SQL语句,每个`&lt;insert&gt;`标签对应一条插入语句。然后通过`&lt;foreach&gt;`标签遍历传入的Java...

    IBatis.NET开发文档

    - 批量操作:如何利用iBATIS进行批量插入、更新或删除。 - 动态SQL的最佳实践:分享编写高效动态SQL的技巧和注意事项。 通过深入学习这些文档,开发者可以熟练掌握iBATIS.NET,实现高效、灵活的数据访问,同时...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis提供了两种执行器:SimpleExecutor和BatchExecutor,分别对应单条SQL执行和批量SQL执行。 5. ParameterMap和ParameterHandler:它们负责参数的设置和处理,ParameterMap代表了SQL参数的映射关系,而...

    ibatis日期格式.doc

    在iBatis中,实现批量删除可以通过动态SQL,使用`IN`操作符结合`&lt;foreach&gt;`标签,将选中的ID集合传入SQL语句中。 2. **小组审核管理** - **问题1**: 建议优化`search`方法,使用联合查询替代多条SQL语句。iBatis...

    ibatis 使用手册

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

    ibatis-2.3.

    10. **Batch Operations**: iBATIS 支持批量操作,如插入、更新和删除,可以提高数据处理效率。 从描述 "ibatis-2.3.ibatis-2.3.ibatis-2.3" 看,似乎是在强调这个版本,但并没有提供额外的信息。标签 "ibat" 显然...

    iBatis操作

    此方法实现了批量插入的功能,通过`SqlMapClientTemplate`进行操作,并且每500条数据执行一次批量提交,以减少网络传输次数,提高性能。 #### 五、性能优化 批量操作相比于单条数据操作有显著的性能优势。根据实际...

    ibatis官方中文文档

    此外,文档还特别强调了如何通过iBATIS来调用存储过程,这是数据库操作中的一个重要特性,尤其是在处理复杂逻辑或批量操作时。 **iBATIS-SqlMaps-2-Tutorial_cn.pdf** 作为教程,这份文档提供了逐步指导,帮助读者...

    ibatis 中文手册

    1. **批处理**:通过设置 SqlSession 的 flushCache 和 autoCommit 属性,可以实现批量插入、更新等操作,提高性能。 2. **合理使用缓存**:根据业务需求调整缓存策略,避免不必要的数据库访问。 **七、与其他技术...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    在Ibatis中,可以通过设置SqlSession的flushCache和useCache属性,以及使用批处理执行器ExecutorType.BATCH,来实现批量插入、更新或删除。例如,在插入1万条数据时,将这些操作放在同一个SqlSession中,而不是逐一...

    ibatis环境搭建教程

    - **ScriptRunner**:允许开发者通过脚本来执行SQL语句,对于批量导入数据或者执行复杂的初始化脚本非常有用。 #### 三、ibatis配置详解 在ibatis中,配置文件通常包括`sqlmap`、`datasource`、`settings`等元素,...

Global site tag (gtag.js) - Google Analytics