该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-23
<hibernate-mapping> <class name="db.Order" table="orders" catalog="sample"> <id name="id" type="java.lang.String"> <column name="ID" length="32" /> <generator class="uuid.hex" /> </id> <property name="orderTitle" type="java.lang.String"> <column name="ORDER_TITLE" length="30" /> </property> </class> </hibernate-mapping> <hibernate-mapping> <class name="db.Product" table="products" catalog="sample"> <id name="id" type="java.lang.String"> <column name="ID" length="32" /> <generator class="uuid.hex" /> </id> <property name="productTitle" type="java.lang.String"> <column name="PRODUCT_TITLE" length="30" /> </property> <property name="orderId" type="java.lang.String"> <column name="ORDER_ID" length="32" /> </property> </class> </hibernate-mapping> 操作时: Order o=new Order(); o.setOrderTitle("order1"); dao.saveOne(o); Product p=new Product(); p.setProductTitle("product1"); p.setOrderId(o.getId()); dao.saveOne(p); (HQL查询则仿照普通SQL中的写法,此处略) 这样一来,纯粹是用关系数据库的思想来使用Hibernate,一个类对应一个数据库表,表之间的约束交给数据库的键来控制, 这样一来,即得到了Hibernate的优点:不用手工写SQL,对象级别缓存,数据库可移植性,也不必费力地学习和理解它了,纯粹是一个薄薄的JDBC的包装; 缺点就是不能在HQL中写出"...object1.object2.object3..." 式的对象引用,而且关联表的加载要自已来维护,但我认为相对于理解它复杂的配置来说,这点牺牲还是值得的, Hibernate的高级特性当然没法用上了,但相比于直接用JDBC或用ibatis写SQL总要好得多,只要会关系数据库,就能立即上手,在新手多、工期短的项目中,可节省很多培训时间,而且对于后来维护者的要求也大大降低,请问我的这种想法是否可行? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-23
java语言不是动态语言,简化不了这些操作。activeRecord给有我们非份之想,好像马丁大叔就在尝试做类时的orm框架。还有jruby给了我们可行的机会
|
|
返回顶楼 | |
发表时间:2007-05-23
不映射成类怎么利用oo思想啊,hibernate可以对一个对象进行操作,jdbc不行啊,主要是可以利用oo思想
|
|
返回顶楼 | |
发表时间:2007-05-23
请再好好理解一下ORMapping的含义。
另外不能充分发挥关联关系的优势,是否是因为没有遵循“对象模型” -> “关系模型” -> “Hibernate映射规则”的开发顺序? |
|
返回顶楼 | |
发表时间:2007-05-23
不用关系影射,你用hibernate干什么。
|
|
返回顶楼 | |
发表时间:2007-05-23
性能上去了,面向对象特性没有了
|
|
返回顶楼 | |
发表时间:2007-05-23
我第一次用hibernate的时候就是这么用的
然后涉及到多表连接时统统搞成视图 |
|
返回顶楼 | |
发表时间:2007-05-23
我就这样用了快2年了,
非常的简便,门槛非常的低,效率也非常不错 级联查询统计返回object[] |
|
返回顶楼 | |
发表时间:2007-05-24
引用 java语言不是动态语言,简化不了这些操作。activeRecord给有我们非份之想,好像马丁大叔就在尝试做类时的orm框架。还有jruby给了我们可行的机会
答非所问,离题太远。 引用 不映射成类怎么利用oo思想啊,hibernate可以对一个对象进行操作,jdbc不行啊,主要是可以利用oo思想
你根本就没看明白这个贴子的观点,我的意思是完全不用OO思想,只是将hibernate当作一个比jdbc顺手点的工具而已,我用关系数据库好多年了,也开发过上百个表的应用,不用OO不也照样做挺好?JDBC不行,可也没人说不准用JDBC吧? 引用 请再好好理解一下ORMapping的含义。
另外不能充分发挥关联关系的优势,是否是因为没有遵循“对象模型” -> “关系模型” -> “Hibernate映射规则”的开发顺序? 同上,不是我没理解,而是本来就没打算采用“对象模型” -> “关系模型”,而是直接一个表对应一个类,走的是"关系模型"的路子。 引用 不用关系影射,你用hibernate干什么。
咱笨,用不好关联映射,怕出错,所以干脆不用它,可关系模型咱还是很精通的,所有的关系就交给数据库去约束它好了。至于为什么还要用Hibernate,是相比JDBC和ibatis来说的:不用写很多SQL,有缓存,跨数据库,支持分页,Spring支持,总之好处一言难尽啊... 引用 性能上去了,面向对象特性没有了
不知你是为了OO而开发,还是为了开发而OO? 引用 我第一次用hibernate的时候就是这么用的
然后涉及到多表连接时统统搞成视图 不会这么恐怖吧?Hibernate很能干的,你google一下“hibernate多表查询”就知道了。 引用 我就这样用了快2年了,
非常的简便,门槛非常的低,效率也非常不错 级联查询统计返回object[] 可见笨人不只我一个啊,这个居然用了2年。Hibernate的这种用法确实很另类,与它诞生的初衷可说是背道而驰,但事实上,这种方式程序跑起来绝对没问题,问题是这种用法能否被团队接受,让我用起来心里有个底,这才是我发贴询问的原因。光一个人私底下用,当然没人会来说三道四,问题是能不能引入到团队开发中,作为一种替代JDBC的简易方案,而不是被团队中的高手当作异已一棒子打死,因为通常一提到Hibernate大家就会联想到ORM,这确实是一个很容易陷入的思维惯性,事实上,前面几个回贴都是这样,也不想想贴子要表达的是什么,就开始反驳了。 |
|
返回顶楼 | |
发表时间:2007-05-25
又找到一个这样用的例子,请看以下链接"Hibernate的性能"一文中的 dhj1的发言
http://hi.baidu.com/leow/blog/item/aeeacbfc7600c6fdfd037fa2.html |
|
返回顶楼 | |