仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 560|回复: 11
打印 上一主题 下一主题

[学习教程] 了解下JAVA的iBatis框架做batch处置的成绩

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:05:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
比来,同事的一个项目用Spring+iBatis做为数据耐久层框架,MySql数据存储。项目公布不久就碰到了严峻的功能成绩,因而决意接纳batch的体例提交数据。我之前的一篇文章:里具体的先容了iBatis框架做batch处置的体例和大概存在的成绩和功能优化,因而同事参考这偏文章对项目举行了改革,引进了batch处置机制。但事变其实不顺遂,在只要2000条数据的情形下,用iBatis框架做batch处置和不做batch所损耗的工夫竟然没有区分,均匀都要50秒摆布。而我在做测试的时分假如做batch仅仅必要1秒,乃至更少的工夫。真是见鬼了,岂非是Spring在弄鬼?由于我的测试和同事的项目独一的区分就是我是间接利用iBatis的SqlMapClient,而同事的项目是利用Spring来猎取SqlMapClient的实例。细心反省了一下伴侣的数据源设置,也没有发明甚么成绩。以下:
 <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"
       destroy-method="close">
       <propertyname="driverClassName"value="com.mysql.jdbc.Driver"/>
       <propertyname="url"value="jdbc:mysql://localhost/test"/>
       <propertyname="username"value="root"/>
       <propertyname="password"value="root"/>
   </bean>
   <beanid="sqlMapClient"
       class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
       <propertyname="configLocation"value="SqlMapConfig.xml"/>
       <propertyname="dataSource"ref="dataSource"/>
   </bean>
就在万般无法的时分,俄然想到一个成绩:假如JDBC的AutoCommit属性被设置为true的话,那即使是依照batch的体例来写程序,也是白费的,每条语句城市间接实行。因而抱着碰运气的立场实行了上面的语句:
System.out.println("以后事物形态:"+sqlMapClient.getDataSource().getConnection().getAutoCommit()); 公然不出所料,输入的值为:true,难怪batch不成用!成绩找到了,怎样办理呢?实验在batch语句实行前手工设置autoCommit属性为false,如:sqlMapClient.getDataSource().getConnection().setAutoCommit(false);了局欠好用,因而检察了一下org.apache.commons.dbcp.BasicDataSource的源代码,发明它的defaultAutoCommit属性默许值为true,这就难怪spring猎取的SqlMapClient的autoCommit属性为true了,既然成绩找到了,办理起来就简单多了,只必要在下面的datasource设置中增添一行:<propertyname="defaultAutoCommit"value="false"/>就能够了。
这里总结一下:iBatis默许的autoCommit属性为false,因而用iBatis框架做batch处置的时分基础不会碰到甚么成绩;在Spring情况下,要看详细DataSource的设置。

java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
柔情似水 该用户已被删除
沙发
发表于 2015-1-20 13:58:13 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
再见西城 该用户已被删除
板凳
发表于 2015-1-24 10:32:38 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-24 14:04:30 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-1-25 12:42:20 | 只看该作者
是一种为 Internet发展的计算机语言
飘灵儿 该用户已被删除
6#
发表于 2015-2-2 22:07:04 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
简单生活 该用户已被删除
7#
发表于 2015-2-3 06:42:06 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
8#
发表于 2015-2-8 19:57:29 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
小妖女 该用户已被删除
9#
发表于 2015-2-26 01:14:47 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
活着的死人 该用户已被删除
10#
发表于 2015-3-8 11:13:09 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
山那边是海 该用户已被删除
11#
发表于 2015-3-15 22:11:53 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
admin 该用户已被删除
12#
发表于 2015-3-22 16:48:54 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表