我个人的一些想法,用hibernate映射可以认为封装成对象,用其可以少写一些sql语句,开发速度会快点,但若在数据量大的时候,速度并不比jdbc快,因为它会多了一步映身的查找!望大家继续.....

解决方案 »

  1.   

    减少sql语句是一个优点,但不是最重要的,最重要的是实现了对象-关系的映射
      

  2.   

    但是用 sql 语句 快呀.......
    只要做好一个 和数据库连接的类,那就可以在整个工程随时调用..怎么开发速度和慢呢...而且减少了很多'对象-关系' 的设置这样如果映射 关系发生改变能够更灵活的修改...
      

  3.   

    楼主可以试一下,如果表与表之间关系很多,很复杂,是不是手工写sql语句很复杂很容易出错?比如删除category 还要删除下面的所有items如果有继承关系sql就更复杂了。
    通过映射,这些关系通过映射表,hibernate 就可以动态生成sql语句。这只是hibernate 的一个优点,其实更大的好处是有了session 和 sessionfactory这两个缓存。减轻了和数据库通讯的负担,提升了性能。建议楼主看一下<深入浅出hibernate>.
      

  4.   

    racke 建议看的书 我已经看了...
    本人十分感谢 racke kill8108 的帮助 .....我以前的想法错了.
    但是本人还是有一点疑问 就是用jdbc 提取 数据 并将数据 放进 list 或 collection 中 必须要附加对象类吗.不附加对象类可不可以放在其他的数据类型中呢?
      

  5.   

    这个问题,不好回答!如果楼主对面向对象有了比较深的认识,那么,你就会习惯于面向对象的操作,那么你的持久化就是保存对象,而不是执行 sql 语句。但是,这不是 hibernate 的全部好处,既然它是面向对象的,那么 POJO 就可以继承 其他的类。继而显示面向对象的其他的好处。等等http://www.huihoo.com/framework/hibernate/reference-v3_zh-cn/
      

  6.   

    racke() 
    楼主什么叫 '附加对象类'
    附加对象类 ,我的意思是 比如 list 或 collection 使用add(int index, Object element)时
    element 为class也就是 
    public CLASS element{
    PRIVATE ......
    PUBLIC SET....(){
    }
    PUBLIC GET.....(){
    }
    这样的类 
    而不能 直接 
    add(数据项,key )呢.....
    必须用类转一下?
     
      

  7.   

    你是指
    public CLASS element{
    PRIVATE ......
    PUBLIC SET....(){
    }
    PUBLIC GET.....(){
    }
    为附加类?举个例子
    select s.name, s.age, s.gender from student.s.
    你是不想创建
    class Student{
      String name;
      int age;
      ...
    }
    而直接把所有的name,age,gender分别放在数据结构中?
      

  8.   

    这个不符合面向对象的规则, hibernate 是基于O(object)/R(relationship)的,你完全可以写一些逻辑做到这点。完全没必要绕过这步。
      

  9.   

    如果 能把name,age,gender 字段的内容 可放进可索引的一个数据结构(如list,collection)中进行操作 绕开hibernate 又有什么不可以呢!
      

  10.   

    如果简单的话一句 sql + JDBC 搞定。不要用hibernate,如果表和表的关系没那么复杂,对持久层的要求没那么高的话不需要hibernate
      

  11.   

    "如果 能把name,age,gender 字段的内容 可放进可索引的一个数据结构(如list,collection)中进行操作 绕开hibernate 又有什么不可以呢!"上面这句话在有些场景似乎有点道理,比如说当你一句sql返回的不是某一个表的字段,是多个表的字段,那将没有一个hibernate的pojo与之对应。这个时候你可以考虑用你自己的数据结构来封装记录。但不是所有的场景都要这样,hiberbate会给你带来很多方便,否则没人会用他。
      

  12.   

    struts+newxy是struts+hibernate的替代方案 http://www.newxy.net