`
wenxin2009
  • 浏览: 314569 次
  • 性别: 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实战

    5.2 插入数据 84 5.2.1 使用内联参数映射 84 5.2.2 使用外部参数映射 85 5.2.3 自动生成的键 86 5.3 更新和删除数据 88 5.3.1 处理并发更新 88 5.3.2 更新或删除子记录 89 5.4 运行批量更新 90 5.5 使用存储过程 91 ...

    IbatisDemo04

    Ibatisnet 1,如何得到运行时ibatis.net动态生成的SQL语句? 2,如何获取DbCommand? 3,如何返回DataTable,DataSet? 4,批量数据的插入……

    java的轻量级orm工具包jdao.zip

    jdao有支持事务,支持批量插入数据等特性。同时jdao底层数据库操作提供接口,编程人员可以自己实现。 如果你觉得hibernate,ibatis等orm框架过于笨重,不烦试下jdao,它可以在团队开发中规范团队持久层代码,较少...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    批量写入 配置中心 去中心化 通讯机制 同步 RPC RMI 异步 MQ Cron 数据层架构设计 缓存优化 DAO&ORM; 双主架构 主从同步 读写分离 性能优化架构能力 代码级别 关联代码优化 cache对其 分支预测 ...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题75:批量插入几百万条数据 Java面试题76:有没有使用过redis Java面试题77:redis的使用场景 Java面试题78:redis存储对象的方式 Java面试题79:redis数据淘汰机制 Java面试题80:java访问redis级redis...

    Spring中文帮助文档

    11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall...

    Spring API

    11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题75:批量插入几百万条数据.mp4 │ Java面试题76:有没有使用过redis.mp4 │ Java面试题77:redis的使用场景.mp4 │ Java面试题78:redis存储对象的方式.mp4 │ Java面试题79:redis数据淘汰机制.mp4 │...

    JdbcTemplateTool.zip

    创建一张表employee插入一些测试数据.DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` (  `id` int(11) NOT NULL,  `name` varchar(300) NOT NULL,  `join_date` datetime NOT NULL,...

Global site tag (gtag.js) - Google Analytics