- 浏览: 1104576 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (401)
- tomcat (7)
- win7 (13)
- stackOverflow (6)
- 1 (0)
- css (5)
- develop IDE (9)
- hibernate (16)
- struts2标签 (10)
- struts2 (25)
- 框架 (1)
- SQLserver2005 (20)
- 词汇解释 (1)
- views (1)
- eclipse (6)
- 效率提高 (12)
- 代码模块 (1)
- 源代码 (3)
- jsonplugin (5)
- ajax (2)
- json (3)
- ssis (14)
- 电脑故障 (10)
- oracle (12)
- poi;excel (5)
- sql (3)
- 正则表达式 (3)
- develop IDEk (8)
- myeclipse (14)
- win2003 (5)
- 正则表达式;js (2)
- js (27)
- 待解决 (2)
- ognl (1)
- com组件 (1)
- 游戏 (6)
- 线程 (0)
- 硬盘 (4)
- 格式化 (2)
- java (7)
- html (9)
- firebug (1)
- jquery (4)
- 文件上传下载 (1)
- vss (2)
- 触发器 (1)
- spring事务管理 (2)
- 模态对话框 (1)
- SQLserver2000 (1)
- web性能优化 (2)
- web安全 (1)
- jetty (1)
- 路由器 (1)
- ie6 (1)
- 缓存 (1)
- jsp (1)
- struts2源代码 (1)
- 方法 (1)
- uml (1)
- ie (3)
- Java日志框架 (1)
- myeclipse,oracle (1)
- freemarker (4)
- 注解 (4)
- svn (2)
- hadoop (15)
- lucene (1)
- word (1)
- spring (5)
- job (1)
- extjs (4)
- paxos (1)
- zookeeper (1)
- 分布式 (1)
- 手机故障 (2)
- maven (2)
- linux (9)
- 虚拟机 (1)
- ext (3)
- javascript (1)
- 数据库 (5)
- 多线程 (12)
- junit (2)
- utils (1)
- mybatis (4)
- Joda-Time (1)
- tftp (1)
- scala (12)
- Graphic2D (1)
- jsf (5)
- 《java并发编程实战》笔记 (16)
- storm (3)
- 设计模式 (3)
- 泛型 (2)
- 数学 (1)
- primeface (1)
- poi (5)
- 线性代数 (1)
- 动态代理 (3)
- mysql (2)
- DB2 (2)
- testNG (1)
- 虚拟机、编译器、增量发布 (1)
最新评论
-
zhouchaofei2010:
Saro 写道在log4j配置里把mapper所在包设为deb ...
mybatis出现sql异常时的日志优化-打印sql参数 -
Saro:
在log4j配置里把mapper所在包设为debug就行了,参 ...
mybatis出现sql异常时的日志优化-打印sql参数 -
pyl574069214:
...
poi Excel 水平居中 垂直居中 -
zhouchaofei2010:
杀手请杀人 写道能看到scala太难得了 谢谢
scala 下划线解析报错: missing parameter type for expanded function -
杀手请杀人:
能看到scala太难得了
scala 下划线解析报错: missing parameter type for expanded function
共插入1000000条,使用时间:24190172ms
约花费等于6小时40分,几乎从上班开始一直运行到下班结束!!
============================================
可能需要优化的地方
1、程序设置累计1000条时,往数据库插入数据。可以改为10000条。
if(i%1000==0){
session.flush();
session.clear();
System.out.println("已插入"+i+"条,\t 进度:"+nt.format((double)i/(double)count));
}
2、使用jdbc的批处理
3、在插入数据过程中,如果有连接对该表进行查询。则一次插入1000条数据竟然要4-5分钟,停止对该表的查询后,插入数据速度提升
4、为了防止一次失败导致全部失败的回滚操作。可以把100万条数据平均分成10,然后一次导入10万条以降低风险
5、就总结上面4条么 ?还有呢?
程序代码如下:
package com.gwideal.college.sitesearch.test; import java.text.NumberFormat; import java.util.Date; import org.hibernate.CacheMode; import org.hibernate.ScrollMode; import org.hibernate.ScrollableResults; import org.hibernate.Session; import org.hibernate.Transaction; import com.gwideal.article.entity.Article; import com.gwideal.cms.entity.CmsChannel; import com.gwideal.cms.entity.CmsConfig; import com.gwideal.cms.entity.ContentCtg; import com.gwideal.college.sitesearch.lucene.LuceneCreateDocument; import com.gwideal.college.sitesearch.util.HibernateUtil; import com.gwideal.core.entity.Website; public class AddData { public static void main(String[] args) { NumberFormat nt = NumberFormat.getPercentInstance(); nt.setMinimumFractionDigits(2); long start=System.currentTimeMillis(); Session session =HibernateUtil.currentSession(); Transaction tx =session.beginTransaction(); int count=1000000; for(int i=0;i<count;i++){ Article article=new Article(); article.setAuthor("kevin"); article.setTitle("kevin_test_"+i); article.setContent("" + "发展规划 按照规划,工程将分二期进行。 轨道交通13号线工程是上海市城市轨道交通路网规划中的一" + "条纵贯中心城区的“西北——东南”轴向的直径线,也是轨道交通路网中的一条重要的主干线。 " + "轨道交通13号线一期工程线路正线全长为全长16.4公里,起点为金运路站,经金沙江西路、金沙江路、长寿路" + "、天目西路、恒丰路、大田路、石门路,到达一期工程终点南京西路站。线路途经上海市嘉定、普陀、闸北、静安4" + "个行政管辖区。 轨道交通13号线一期工程共设14座车站,沿线与1、2、3、4、7、11、12号线及规划中的14、15、2" + "0、21共11条线、9座站换乘,其中三线换乘站3座,两线换乘站6座,全部为地下站,分别是金运路站、江桥站、丰庄站、祁" + "连山南站、真北路站、大渡河路站、金沙江路站(与3、4号线换乘)、隆德路站(与11号线换乘)、武宁路站、长寿路站(与7号" + "线换乘)、江宁路站、汉中路站(与1号线、12号线换乘)、自然博物馆站、南京西路站(与2号线、12号线换乘)。 轨道交通" + "13号线一期工程设北翟路车辆基地1座(与2号线共享),设控制中心1座(与11号线共享)和变电所1座(与11号线共享),轨" + "道交通13号线一期西段(工程将于2012年年底首先开通)。 轨道交通13号线一期工程在2012年建成以后,将与同年建成的" + "11号线北段二期和12号线一起,形成总共13条线、237座车站、总长500公里运营里程的上海轨道交通基本网络,每天可接纳近8" + "00万人次,占全市公交出行总量的40%以上,大大方便了市民的交通出行,从而使上海的轨道交通跨入世界先进行列。 二期" + "由南京西路站延伸至张江路站,现阶段有消息指出计划于2015年左右开通。 横穿上海市中心 13号线是上海市城市轨道" + "交通路网中西北-东南的重要骨干线路,穿越嘉定、普陀、静安、闸北、再次来到静安、黄浦、和浦东新区等8个行政区,经过金鹤" + "公路、金沙江路、长寿路、天目西路、恒丰路、石门路、瑞金路、成山路、沪南路等客运交通走廊和大型客流集散点,串联城市总体规划" + "中的几个中心,如长风地区、华阳社区、江宁社区、不夜城综合开发区、太平桥二期和部分历史文化风貌保护区、世博会地区以及浦东的三" + "林、六里地区。 13号线全长33.6公里,均为地下线。31座车站分别为金运路站(换乘20号线)、江桥站、丰庄站、祁连山南路站(换乘" + "21号线)、真北路站、大渡河路站(换乘15号线)、金沙江路站(换乘3、4号线)、隆德路站(换乘11号线)、武宁路站(换乘14号线)、长寿" + "路站(换乘7号线)、江宁路站、汉中路站(换乘1号线、12号线)、自然博物馆站、 南京西路站(换乘2号线、12号线)、淮海中路站(换成14号" + "线)、新天地站(换乘10号线)、马当路站(换乘9号线)、卢浦大桥站、世博大道站、长清路站(换乘7号线)、成山路站(换乘8号线)、东明" + "路站(换乘6号线)、六里站、下南路站、北蔡站、绿川新村站、莲溪路站(换乘18号线)、华夏中路站(换乘16号线、中科路站、哥白尼路站和" + "张江路站,均为地下站。 据环评报告透露,13号线将分段修建,预计全线工程总投资为198.68亿元,2012年底将完成金运路站至金沙江路站" + "线路,设车站7座;2015年后年完成金沙江路路站至南京西路路站线路,再完成南京西路站至以张江路站。 世博专用线 十三号线其中三个" + "车站(卢浦大桥、世博园、长清路)三个全长约5公里的地铁隧道区间,属于2010年世界博览会的「世博专用线」(或称「" + "世博过江段」),计划2010年初提早投入运营,以便开幕前建成启用,作为世博园内专用轨道交通。在世博会期间此段线路" + "将不纳入轨道交通运营网络,而是凭世博会门票免费乘坐。 此区间由上海建工(集团)总公司于2007年3月以13.38亿元人民币" + "的投得建设权;工程竣工并试运营一年后,则会由招标人回购。 建设(规划)中换乘车站 金运路站 - 与二十号线换" + "乘 祁连山南路站 - 与二十一号线换乘 大渡河路站 - 与十五号线换乘 金沙江路站 - 与三号线及四号线换乘 隆" + "德路站 - 与十一号线换乘 武宁路站 - 与十四号线换乘 长寿路站 - 与七号线换乘 汉中路站 - 与一号线及十二号线换" + "乘 南京西路站 - 与二号线及十二号线换乘 淮海中路站 - 与十四号线换乘 新天地站 - 与十号线换乘 " + "马当路站 - 与九号线换乘 长清路站 - 与七号线换乘 成山路站 - 与八号线换乘 东明路站 - 与六号线换乘 " + " 莲溪路站 - 与十八号线换乘 华夏中路站 - 与十六号线换乘 轨道交通十三号线一期将于2012年12月28日试运" + "营,率先开通金运路站至金沙江路区间试运行 金沙江西路站 丰庄站 祁连山南路站(暂不开通,预计2013年开通)" + " 真北路站 大渡河路站(暂不开通,预计2014年开通) 金沙江路站(可换成3、4号线) " + ""); CmsChannel channel=new CmsChannel(); channel.setId(1083l); article.setChannel(channel); article.setTplContent("/article/default/content_gg.html"); article.setSortDate(new Date()); article.setReleaseDate(new Date()); article.setReleaseSysDate(new Date()); article.setVisitTotal(1000l); article.setVisitMonth(1000l); article.setVisitToday(1000l); article.setVisitWeek(1000l); article.setVisitYear(1000l); article.setVisitQuarter(1000l); article.setCheck(true); article.setBold(false); article.setCheckOpinion("1"); article.setCheckTime(new Date()); article.setCommentCount(3); article.setCheckStep(2); Website website=new Website(); website.setId(1l); article.setWebsite(website); CmsConfig config=new CmsConfig(); config.setId(1l); article.setConfig(config); ContentCtg contentCtg=new ContentCtg(); contentCtg.setId(1l); article.setContentCtg(contentCtg); article.setTopLevel(1); article.setHasTitleImg(false); article.setAllowComment(true); article.setDraft(false); article.setBold(false); article.setRecommend(false); article.setDisabled(false); article.setReject(false); article.setPageCount(10); article.setStatDate(new Date()); session.save(article); if(i%1000==0){ session.flush(); session.clear(); System.out.println("已插入"+i+"条,\t 进度:"+nt.format((double)i/(double)count)); } } tx.commit(); long end=System.currentTimeMillis(); System.out.println("共插入"+count+"条,使用时间:"+(end-start)+"ms"); HibernateUtil.closeSession() ; } }
发表评论
-
hibernate删除时报identifier of an instance of xx was altered from xx to xx
2013-02-06 16:56 1306org.hibernate.HibernateExcep ... -
@Transient申明非持久化属性
2012-12-12 18:26 1637对于entity有些get方法是不需要和数据库关联的。需 ... -
hibernate注解参考
2012-12-12 18:17 669http://hty1988.iteye.com/blog/5 ... -
Hibernate初始化时在OneToOneSecondPass类中出现NullPointerException
2012-12-12 14:42 1098启动项目 Hibernate随即报错Caused by: j ... -
org.hibernate.MappingException: Unknown entity: com.gwideal.college.review.entit
2012-12-12 09:47 1150注解 org.hibernate.MappingExcepti ... -
ssh连接设置更改数据库名不起效果,连接127.0.0.1更换127.0.0.22也不报错
2011-12-22 20:15 3166ssh连接设置更改数据库名不起效果,连接127.0.0.1更换 ... -
hibernate反向工程生成的实体类就不能正确放在指定的包路径下
2011-12-15 15:03 1352hibernate反向工程生成的实体类就不能正确放在指定的包路 ... -
hibernate反向引擎:Path must include project and resource name: /
2011-12-15 14:45 4415解决方法:修改.myhibernatedata文件里面的con ... -
ssh项目中使用hql editor
2011-11-09 10:05 931ssh项目中使用hql editor -
hql 长度函数length()
2011-08-18 13:34 2091sql: SELECT [id] ,[pare ... -
解决hibernate查询时,自动更新问题
2011-08-09 13:46 2085对hibernate的session操作时时,默认的Flush ... -
使用有序集合对数据进行排序
2011-08-03 17:43 987http://developer.51cto.com/art/ ... -
saveOrUpdate():org.hibernate.StaleStateException
2011-08-02 13:53 869org.hibernate.StaleStateExcepti ... -
解决hibernate查询后自动保存问题
2011-07-29 16:11 1858hibernate在查询后会自动保存流离态的对象,但有 ... -
hibernate 子查询
2011-06-28 10:28 964只可以在select 或where 子句中出现 不出现fro ...
相关推荐
标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...
本篇将详细探讨“Hibernate插入数据”的相关知识点,结合学习心得,深入理解并掌握其核心原理与实践技巧。 首先,Hibernate通过对象关系映射(ORM)技术,将数据库表与Java类关联起来,使得数据库操作可以通过对象...
在上述例子中,当尝试向数据库插入100,000条数据时,由于默认情况下Hibernate会将所有持久化对象保留在一级缓存中,随着数据量的增加,内存消耗也会迅速增长,最终导致内存溢出。因此,我们需要对一级缓存进行管理。...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
在这些场景中,如果使用传统的 INSERT 语句逐条插入数据,会导致性能下降和内存溢出问题。因此,使用批量更新机制可以大大提高性能和降低内存占用。 Hibernate 的批量更新机制 Hibernate 提供了两种批量更新机制:...
在本项目中,我们主要探讨如何使用SpringMVC、Hibernate框架与Apache POI库来实现对MySQL数据库的操作以及数据导出为Excel的功能。这是一项常见的需求,在企业级应用开发中非常实用,尤其对于数据管理和报告生成场景...
在使用Hibernate进行数据库操作时,有时会遇到一个常见的问题,即当从数据库中查询Date类型的数据并由Hibernate返回时,发现结果中的时分秒部分不正确。这个问题通常源于多个因素,包括日期时间的序列化与反序列化...
6. **测试与验证**:编写测试用例确保多数据源配置正确,能正常执行查询、插入等数据库操作。 在提供的`common-muldb-hb`和`common-muldb-mb`文件中,应该包含了完整的配置文件、实体类、Mapper接口和XML映射文件,...
### Hibernate使用缓存时的数据同步问题详解 #### 引言 在现代软件开发中,ORM框架如Hibernate被广泛应用于数据库操作,以简化Java应用程序与数据库之间的交互。然而,使用Hibernate时,缓存机制的合理配置对于...
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据访问。本话题将深入探讨“Hibernate性能测试代码”,以帮助我们理解如何有效地评估和...
然而,在实际应用过程中,如何有效地利用Hibernate来优化数据持久层的性能仍然是一大挑战。本文旨在通过对Hibernate的深入研究,探讨影响其性能的各种因素,并提出相应的优化策略。 #### 二、O/R Mapping及...
### Hibernate 对 Blob 类型字段进行数据添加 #### 知识点概述 在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储...
对于数据插入,一般会在Service层编写插入数据的方法,该方法会利用Hibernate的Session接口,通过save()或saveOrUpdate()方法将Java对象持久化到数据库。在执行完数据库操作后,Service层方法通常会调用Session的...
### Hibernate性能优化方案详解 #### 一、引言 Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,其高效性和灵活性受到众多开发者的青睐。然而,不当的设计和配置往往会导致性能瓶颈,严重影响应用程序...
Hibernate是Java领域中最流行的ORM框架之一,它通过元数据来定义对象和数据库表之间的映射关系,使得Java对象可以直接被存储和检索,而无需编写大量的SQL语句。 在ORM中,POJO(Plain Old Java Object)是一个简单...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,通过面向对象的方式处理数据。在实际项目开发中,有时我们可能需要对数据库中的某些字段使用自定义的...
### Hibernate配置数据源详解 #### 一、引言 在软件开发过程中,特别是涉及大量数据库交互的应用场景下,选择合适的数据源配置对于提高系统性能、稳定性具有重要意义。Hibernate作为Java领域内广泛使用的对象关系...
配置Hibernate数据源是一项基础而重要的任务,涉及在Java应用程序中集成和使用Hibernate框架以及MySQL数据库。以下内容旨在详细介绍如何在MyEclipse开发环境中配置Hibernate数据源,同时解释相关概念和步骤。 首先...
3. **批处理**:批量插入和更新数据,利用Hibernate的批处理功能,提高数据库操作效率。 五、事务管理优化 1. **合理划分事务边界**:根据业务逻辑划分事务大小,避免过大事务导致的性能问题。 2. **事务隔离级别...