`
一眼泉水
  • 浏览: 517051 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
2、
表示层:struts
业务层:spring采用ioc 和aop的思想。
持久层:hibernate 采用orm思想。

配置hibernate时,session工厂不用选,还有就是要预先建立mysql数据库连接,
利用datebase逆向工程可以生成实体类,生成映射文件并更新映射文件,id generator选择native自增长类型,“下一步”,id generator选择native,property name 填写参数的别名,不该也行,然后,项目下面就会生成一个对应表的实体类,
配置spring时,正常配置就行,不用特别修改。
Hibernate中,一个数据库表逆向生成一个持久化类,每个持久化类对属性的存取方法使用了标准javabean命名约定,同时把类属性的访问级别设为私有。这是推荐的设计,但并不是必须的。
所有的持久化类都要求有无参的构造器,因为hiberate必须使用java反射机制为你创建对象。
Hibernate需要知道怎么去加载和存储持久化类的对象,这正是hibernate映射文件发挥作用的地方。映射文件中的column属性告诉hibernate,我们使用表的哪个字段作为主键,嵌套元素generator指定了标识符生成策略,在这里我们指定native(自增长,主键),assign(手工赋值,主键),foreign(较少使用,此主键又为外键),hibernate强烈建议给每个表加一个自增长的类id只能出现一次,表示主键,column一定是指数据库表列名,property,id指的是实体类属性名。他根据已配置的数据库方言自动选择最佳的标识符生成策略。Property元素的name属性告诉hibernate使用哪个getter和setter方法。
持久化:就是将程序数据在瞬时状态和持久状态之间相互转化。
DAO:DAO是一种模式,业务逻辑和数据访问解耦合。
ORM:对象关系映射,是DAO接口针对关系型数据库的一种实现,本质上就是一个DAO实现类。
Hibernate逆向工程:生成实体类,映射文件,配置文件。
Hibernate的三种状态:临时态(未受管理),持久态,游离态(未受管理)。
临时态:新建;持久态:save,update;游离态:session.clear(),session.close()之后。
临时态和游离态的区别:游离态:数据库中有与之对应的数据。临时态:数据库中不一定有与之对应的数据。
持久态的数据在事务提交时,自动与数据库对应表记录自动匹配,把程序对象值赋给数据库值。
游离态一定是由持久态转化而来的。
13、一对多:从POJO对象看,在一的一方有多的一方的set集合,多的一方有一的一方的实体类。
14、从配置文件看:
多对一:一的一方有<set>节点,其内部有<ont-to-many>节点,多的一方有<many-to-one>的节点。
单项一对多:只在一的一方有多的一方的set集合,多的一方没有一的一方的实体类。
延迟加载:session必须处于打开状态。
Order-by="title",设置根据什么进行排序。一的一方set内多方集合中实体的排序方式。
Cascade:表示是否进行级联操作。
All:对所有操作都进行级联;
None:对所有操作都不进行级联;
Save-update:执行更新操作时级联;
Delete:执行删除时级联操作。
inverse:是“反转”的意思,表示关联关系的控制权,即按照关联的某一方的对象状态来同步更新数据库。为true,表示有对方负责,为false,表示有自己负责。

主键关系的一对一,两种实现:
主键关系的一对一,不允许使用延迟加载,lazy的值都为false。
外键关系的一对一,主键方依然为即时加载,但外键方为延迟加载。
首先配置数据库,子表的主键依赖于父表的主键,父表的主键自动增长,子表的主键非自动增长。然后,逆向生成映射文件,并修改映射文件,在父表java文件中,添加字表的实体类和方法,删除set的相关信息。在主表的映射文件中,删除set的相关信息,在字表的映射文件中,删除many-to-one的相关信息。在主表的映射文件中,添加<one-to-one name="women" class="com.xaygc.Women" />(其中的women字段对应父表中的子表实体类名称。)然后,在子表的映射文件中,添加<one-to-one name="men" class="com.xaygc.Men" />(其中的men字段对应子表中父表实体类名称)。然后,修改子表的映射文件:
<generator class="foreign">
<param name="property">men</param>
</generator>
其中的men和下面的one-to-one的表中的name名字是一样的。
外键关系的一对一。
Hibernate的即时加载和延迟加载:
即时加载:不管是否使用,马上从数据库中取出,放入内存。如:session.get()方法。优点:响应速度快,效率高,不需要session一直处于打开状态。缺点:占用资源多。
延迟加载:代码执行后,并不马上执行sql语句从数据库中获取数据,而是在使用对象时才加载,如:session.load()方法。优点:占用资源少。缺点:相应速度慢,需要session一直处于打开状态。
注意:如果使用延迟加载,session要一直处于open状态,否则会报异常。
分享到:
评论

相关推荐

    ssh学习笔记1 ssh学习笔记1

    ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1

    SSH学习笔记3 SSH学习笔记3

    SSH学习笔记3 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    ssh学习笔记ssh学习笔记

    ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记ssh学习笔记

    SSH学习笔记7 SSH学习笔记7

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记4 SSH学习笔记4

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记2 SSH学习笔记2

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记9 SSH学习笔记9

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记6 SSH学习笔记6

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记5 SSH学习笔记5

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记8 SSH学习笔记8

    SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记 SSH学习笔记

    SSH学习笔记SSH

    来源于网络,SSH学习笔记 来源于网络,SSH学习笔记 来源于网络,SSH学习笔记

    ssh学习笔记

    本笔记是s2s4h5的,所有内容亲测,方便初学者学习之用。

    SSH学习笔记.doc

    SSH学习笔记.doc SSH学习笔记.doc SSH学习笔记.doc

    ssh自学笔记

    ssh自学笔记 记录一些配置 注意事项 重要知识点等信息

    Java学习笔记、SSH学习笔记

    JSP JSTL、EL表达式 SSH 图形随机码 AJax笔记.txt

    SSH学习笔记.zip

    SSH JAVAEE SPRING HIBERNATE STRUCT 学习笔记

    SSH框架学习笔记,学习交流

    学习笔记,框架,SSH,学习笔记学习笔记,框架,SSH,学习笔记学习笔记,框架,SSH,学习笔记学习笔记,框架,SSH,学习笔记学习笔记,框架,SSH,学习笔记学习笔记,框架,SSH,学习笔记学习笔记,框架,SSH,学习笔记

    SSH框架学习笔记

    SSH框架学习笔记,提供给初学者使用。 1. Struts简介 2. spring

Global site tag (gtag.js) - Google Analytics