zoukankan      html  css  js  c++  java
  • Hibernate笔记

    学习HIbernate,同时做的笔记,主要是给自己看,如果您感觉有用最好,若有不当的地方,还请指教。笔记做的不是很详细,所以有点像是提纲携领。

    Hibernate

    1.    generator属性用来表示主键的生成方式。

    2.    User.hbm.xml文件是用来建立Java类和数据库的表关系的映射(对象关系映射)。

    3.    构建HibernateUtil类对获取连接进行管理



    4.    session的几个方法save(Object object)、get(int id)、update()、delete()、Load()等方法。

    5.    对象的状态

    1)       瞬时状态(比如创建的User对象的实例,判断对象的状态是根据对象与session和数据库的关系区分的。如果对象在瞬时状态则表明该对象刚刚被创建与session和数据库没有关系,也不能被Hibernate进行管理);

    2)       持久状态(表示该对象已经被session管理,对象的所有变化,Hibernate都能管理知道;并且该对象已经放入数据库中,数据库中有对象的记录与之对应);

    3)       脱管状态(表示该对象脱离了session的管理,但是对象已经存入数据库中,对象不能被Hibernate管理);

    6.    脱管的对象状态时需要调用update()方法进行更新。

    7.    但不知道对象的状态时调用saveOrupdate()方法进行处理,让Hibernate进行判断对象的状态(根据id进行判断)。

    8.    hql语言的使用String hql = "from User as user whereuser.name=?";注意hql的使用是对于对象而言的。所以User是对象的名称,而不是数据库中表的名称。查询利用Query对象。

    9.    条件查询的使用Criteria对象



    可以向条件查询对象中添加条件,其他的语法与Query对象没有太大差别。

    10. 编写Dao层(Hibernate的数据访问层),UserDao定义为接口,再编写UserDaiHibernateImpl类去实现该接口。最后编写测试类模仿逻辑业务层去使用数据访问层。

    11. 关系映射:多对一的关系映射,多对一的映射标签:many-to-one标签


    12. 在建立多对一的关系时,比如建立员工和部门的关系时,定义员工类是在该类里边要定义部门的引用,这样Hibernate就能够建立数据库中员工和部门的映射。

    13.  

    建立一对多的关系的方法是:在部门类中建立一个set集合,在部门的配置文件中配置



    14.  

    一对一的关系,比如人和身份证的关系。建立Person和IdCard两个类,并且在两个类中分别引用两者。关键配置:Person的配置文件


    和IdCard的配置文件



    15. 多对多的关系映射。在数据库中多对多的实现是建立中间表的方法,也就是两个一对多实现多对多。

    注意在实际的使用过程中使用多对多的映射方式是比较少的因为如果关系中的某一方的数据量过大的话就会使得效率极低。因为有中间表,需要查很多张表才能查到。

    16. 组件关联的映射方式,当两个对象之间的关系是包含关系,并且想把两张表合成为一张表时可以使用。

    17. 在思考Hibernate内部是如何处理的问题时可以思考对象是如何存入数据库中,并且数据库是如何查询出对象的两个方面进行思考。

    18. 在Hibernate中使用集合时应该注意,使用最多的是Set集合,并且在对象中定义集合时要使用接口,因为Hibernate内部把Java的集合又重写了一遍,所以如果直接使用具体的类的话会造成类型转换异常。所以要使用面向接口的编程。

    19.  

    关联关系的级联操作,利用cascade关键字,设置属性为save-update,在保存department是可以自动保存employment



    20. inverse关键字的使用,老师和学生的关系,让数目多的一方去维护两者的关系;所以让学生维护和老师的关系。在老师的学生集合属性中添加inverse属性为true。注意inverse不能在有序的集合中使用,比如list、array。




  • 相关阅读:
    vsftp 虚拟用户测试
    RHEL7 MariaDB测试
    安装xenapp后,非管理员连接RDP出现桌面当前不可用的解决方法
    sqrt函数的实现
    O2O、C2C、B2B、B2C
    libsvm使用说明
    如何确定最适合数据集的机器学习算法
    知乎日报:她把全世界的学术期刊都黑了
    逻辑回归应用之Kaggle泰坦尼克之灾
    非均衡数据分布的分类问题
  • 原文地址:https://www.cnblogs.com/lcqBlogs/p/2392368.html
Copyright © 2011-2022 走看看