由于工作原因,现在将ORM从熟悉的Hibernate转到IBatis
最近组里要把过去的一个项目从ms sql转到oracle下,原本在HB下很轻松的事情
结果现在要一个模块一个模块的改,而且出现的问题多多,改起来超级麻烦
发现IBatis在持久层为我们做的少之又少,带来的是一堆堆 XML
改的时候IB不给输出执行时的SQL语句,出错基本不知道是什么地方的问题,只能一点点摸索(比如断点),要去XML中一个一个的对比,粘出去到ORACLE下执行语句.
一个小项目动辄几十个XML用来映射SQL,调程序必须在 SQL/CODE之间来回切换,谁知道是不是SQL在ORACLE下出错了,人写的么,都会有一点点毛病,
比如:
[code]select user.id,user.name form user_table as user where user.pass=#password#;[/code]
这样的语句在SQL下可以正常运行,跑到ORACLE就会出错,ibatis应该报SQL没有正常结束
像这样烦人的问题每天都遇到一堆,因为你不知道以前好用的SQL在什么时候什么地方会出错,而且还把异常封状的那么难看
[b]再说说性能问题[/b]
总是看人家说hibernate在批量操作的时候很慢(对比JDBC),其实完全是句废话,任何ORM封装JDBC都要有性能开销,不想要性能开销的可以用JDBC嘛,而且HB提供方法可以很容易的局部绕过HB API,直接使用JDBC
[code]
. . .
Connection conn=session.getConnection();
JDBC CODE
....
[/code]
通常大家都会说这样一个例子,HB在update 1W以上数据是的性能,其实可以通过setBatch来解决
作为ORM框架,应该为我们带来开发.管理上的效率而不是负担
一点点个人看法,不喜欢的马上扔砖头 :roll:
最近组里要把过去的一个项目从ms sql转到oracle下,原本在HB下很轻松的事情
结果现在要一个模块一个模块的改,而且出现的问题多多,改起来超级麻烦
发现IBatis在持久层为我们做的少之又少,带来的是一堆堆 XML
改的时候IB不给输出执行时的SQL语句,出错基本不知道是什么地方的问题,只能一点点摸索(比如断点),要去XML中一个一个的对比,粘出去到ORACLE下执行语句.
一个小项目动辄几十个XML用来映射SQL,调程序必须在 SQL/CODE之间来回切换,谁知道是不是SQL在ORACLE下出错了,人写的么,都会有一点点毛病,
比如:
[code]select user.id,user.name form user_table as user where user.pass=#password#;[/code]
这样的语句在SQL下可以正常运行,跑到ORACLE就会出错,ibatis应该报SQL没有正常结束
像这样烦人的问题每天都遇到一堆,因为你不知道以前好用的SQL在什么时候什么地方会出错,而且还把异常封状的那么难看
[b]再说说性能问题[/b]
总是看人家说hibernate在批量操作的时候很慢(对比JDBC),其实完全是句废话,任何ORM封装JDBC都要有性能开销,不想要性能开销的可以用JDBC嘛,而且HB提供方法可以很容易的局部绕过HB API,直接使用JDBC
[code]
. . .
Connection conn=session.getConnection();
JDBC CODE
....
[/code]
通常大家都会说这样一个例子,HB在update 1W以上数据是的性能,其实可以通过setBatch来解决
作为ORM框架,应该为我们带来开发.管理上的效率而不是负担
一点点个人看法,不喜欢的马上扔砖头 :roll: