论坛首页 入门技术论坛

我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

浏览 69874 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-04-27  
ltian 写道
用户可不追求代码的优雅,用户追求的是性能和稳定,如果哪位用Hibernate做过处理百万数据以上的复杂计算,比如说电力或者电信的客户算费系统,而且能够获得用户在性能方面的肯定,能让我们学习一下也是好的!

用hibernate调用存储过程
0 请登录后投票
   发表时间:2007-04-27  
daquan198163 写道
ltian 写道
用户可不追求代码的优雅,用户追求的是性能和稳定,如果哪位用Hibernate做过处理百万数据以上的复杂计算,比如说电力或者电信的客户算费系统,而且能够获得用户在性能方面的肯定,能让我们学习一下也是好的!

用hibernate调用存储过程
用hibernate调用存储过程还要hibernate来干吗呢?
百万数据并不算很大,社保系统动辄千万以上,这还是一个月的数据量。
0 请登录后投票
   发表时间:2007-04-27  
林秋枫 写道
daquan198163 写道
ltian 写道
用户可不追求代码的优雅,用户追求的是性能和稳定,如果哪位用Hibernate做过处理百万数据以上的复杂计算,比如说电力或者电信的客户算费系统,而且能够获得用户在性能方面的肯定,能让我们学习一下也是好的!

用hibernate调用存储过程
用hibernate调用存储过程还要hibernate来干吗呢?
百万数据并不算很大,社保系统动辄千万以上,这还是一个月的数据量。
hibernate的本地sql很幽雅吗?
比JDBC恶心多了。
0 请登录后投票
   发表时间:2007-04-27  
Arthas.Hui 写道
林秋枫 写道
1.未确定的表就是指即使在运行的时候也还是不能确定的表。比如你要把一张表的数据导出成xml文件,相关的映射方式在保存在配置文件中的。就是在运行的时候,这次你导出的是a表,下次运行导出的可能就是C表。永远不能确定使用的是哪张表,也不可能确定是哪个类了。除非动态生产class,动态加载。
用jdbc根本不用hard coded每个相关表的细节。就是操作表的sql是根据配置文件动态产生的。所以新增加一个字段或者少一个字段,甚至换表都只需要修改配置文件就可以了。根本不用改代码。

2.实际应用中,有需要对两张千万级别的表所有记录的某个类似属性进行比对,得出比对统计结果。
jdbc绝对没有问题。不知道Hibernate怎么实现,难道把所有数据都缓存吗?还是用什么方法?



具体的例子阿。。。等着你的例子呢。。。。


简单的例子,你要把一个表里面的是数据导出成xml或者insert的sql脚本。
比如在配置文件里面:
<table> t1 </table>
<colume1> code </colume1>
<colume2> name </colume2>
<condition> code!=1000 </condition>

你在代码里面很容易生产动态的sql语句:select  config.get("colume1"),config.get("colume2") from config.get("table") where config.get("condition")

rugu如果用户要改成其他的表或者字段,只需要修改配置文件即可。











0 请登录后投票
   发表时间:2007-04-27  
林秋枫 写道
Arthas.Hui 写道
林秋枫 写道
1.未确定的表就是指即使在运行的时候也还是不能确定的表。比如你要把一张表的数据导出成xml文件,相关的映射方式在保存在配置文件中的。就是在运行的时候,这次你导出的是a表,下次运行导出的可能就是C表。永远不能确定使用的是哪张表,也不可能确定是哪个类了。除非动态生产class,动态加载。
用jdbc根本不用hard coded每个相关表的细节。就是操作表的sql是根据配置文件动态产生的。所以新增加一个字段或者少一个字段,甚至换表都只需要修改配置文件就可以了。根本不用改代码。

2.实际应用中,有需要对两张千万级别的表所有记录的某个类似属性进行比对,得出比对统计结果。
jdbc绝对没有问题。不知道Hibernate怎么实现,难道把所有数据都缓存吗?还是用什么方法?



具体的例子阿。。。等着你的例子呢。。。。


简单的例子,你要把一个表里面的是数据导出成xml或者insert的sql脚本。
比如在配置文件里面:
<table> t1 </table>
<colume1> code </colume1>
<colume2> name </colume2>
<condition> code!=1000 </condition>

你在代码里面很容易生产动态的sql语句:select  config.get("colume1"),config.get("colume2") from config.get("table") where config.get("condition")

rugu如果用户要改成其他的表或者字段,只需要修改配置文件即可。



这个例子太无聊了。。。

<class> t1 </class>
<property1> code </property1>
<property2> name </property2>
<condition> code!=1000 </condition>

你在代码里面很容易生产动态的hql语句:select a.config.get("colume1"),a.config.get("colume2") from config.get("table") a where config.get("condition")
如果用户要改成其他的表或者字段,只需要修改配置文件即可。
0 请登录后投票
   发表时间:2007-04-27  
......解决什么问题就用什么工具.有必要一个工具用到底不?
0 请登录后投票
   发表时间:2007-04-27  
我觉得最主要的,还是看你倾向于开发效率还是运行效率
0 请登录后投票
   发表时间:2007-04-27  
不趋向于具体那一种
看实际情况了
0 请登录后投票
   发表时间:2007-04-28  
mmwy 写道
我觉得最主要的,还是看你倾向于开发效率还是运行效率

开发效率和运行效率两者并没有逻辑冲突,
没做到,不代表不能做到。
0 请登录后投票
   发表时间:2007-04-28  
ltian 写道
用户可不追求代码的优雅,用户追求的是性能和稳定,如果哪位用Hibernate做过处理百万数据以上的复杂计算,比如说电力或者电信的客户算费系统,而且能够获得用户在性能方面的肯定,能让我们学习一下也是好的!


用dbcoat, 它为你提供超越jdbc速度,尤其你要处理十万,百万和千万级别的数据时。
dbcoat提供jdbc一样批量数据插入,更新的操作,
dbcoat提供为大批量查询结果提供分段cache。
详细信息访问:
http://sourceforge.net/projects/dbcoat
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics