- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2和hibernate和spring学习笔记
hibernate学习笔记:
首先了解hibernate的配置文件,hibernate配置文件里面配置了与数据库打交道的一些信息,包括数据源,与一些数据库的相关类的配置,drivermanager等等,还设置了实体类与数据库表的映射,那么,在运行程序的时候,首先就要先加载hibernate的配置文件,整个hibernate的配置文件里面的内容首先包含在hibernate-configuration里面,其次,在hibernateconfiguration里面又包装了一层sessionfactory,那么当获得了hibernate-configuration之后,若要生成相应的实体类的表,就要导出相应的表,配置文件里面也配置了相应的语句,之后,若要对数据库表进行增删改查等操作,在获得了hibernate-configuration之后,就要建立一个相应的sessionfactory,当建立了sessionfactory之后,就要建立与数据库的会话机制,那就是在sessionfactory这个工厂里面打开一个session来保持这个通话。对数据库进行一些基本的操作。
采用session的load方法加载数据:
采用session的load方式加载数据,参数为相应的实体类,和对应的表中的id主键值,来加载相应的数据。session的load方法支持一级缓存,也就是session级缓存,当查询上来相应的数据时,如果再接着查询,则首先从session级缓存中查询看有没有相应的数据,如果有,就不去数据库存取,不发相应的sql语句。第二:session的load方法支持延迟加载,只有在真正用到数据的时候,load方法才去数据库查询相应的数据只有真正用到数据的时候才发sql语句。
采用session的get方法加载数据
session的get方法首先不支持延迟加载,当执行session的get方法时,不管是否用到数据,get方法都发出sql语句查询相应的数据,加载上来。同样的session的get方法和load方法一样,都支持一级缓存,都首先去缓存里读数据,如果有的话,直接加载数据,‘如果一级缓存中没有,那么发sql语句,去数据库中查找相应的数据。
在对数据库进行某些变动的处理时,如修改,删除等操作,一定要开启事务,保持数据的一致性
在做删除与修改数据库的时候,一定要开启事务的管理,因为事务保持了数据操作的一致性。而在查询加载数据的时候,并不需要开启事务,因为加载,查询数据,不对数据进行相应的修改操作无需一致性,而在修改,删除时一定要开启事务,以达到保持数据的一致性。
采用session的createQuery方法加载数据时:
查询单个的属性条件,采用直接根据条件查询,或者采用顺序占位符?来查询当采取顺序占位符?时,得调用query的setParameter的方法,其中里面的参数解释为:第一参数表示的是第一个问号的下标,如果为0,则表示为第一个?号,第二个参数为?的实际值,对应的是实体表中的某个字段的值,若第一个?代表的是id,那么第二个参数则是表中的id字段的某个值这样就能根据具体的值把相应的内容加载上来,这样加载上来的信息为一个list集合。除了采用顺序占位符才传递参数外,还可以使用引用占位符,引用占位符[:参数名],也就是给hql语句中的条件中的字段另起个别名而已,之后调用query的setParameter方法,参数表示为:第一个参数表示hql语句中的条件的别名,第二个参数为别名条件的值。根据这样就能把相应的数据加载上来。返回一个list集合
One2one唯一外键关联映射是多对一关联映射的特例可以采用many-to-one标签,指定多的一端的unique=true,这样就限制了多的一端的多重性为一,通过这种手段映射一对一唯一外键关联
例如一个人对应一个身份证号,在person一端配置
hibernate-mapping
class name=com.bjsxt.hibernate.Person table=t_person
id name=id
generator class=native/
/id
property name=name/
many-to-one name=idCard unique=true/
/class
/hibernate-mapping idcard一端无需配置
One2one唯一外键双向关联映射,如上面例子需要在另一端(idcard),添加one-to-one标签,指示hibernate如何加载
其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,
所以不能指定主键加载person,而要根据per
您可能关注的文档
- SSH框架搭建(Struts2.3+Spring3.+Hibernate4).doc
- 2009春浙江省三级网络技术.doc
- 原创Struts+Spring+hibernate框架整合步骤(多图).doc
- spring hibernate struts2 mysql各种架构图汇总.doc
- jsp环境搭建(很好-采用).doc
- StrutsSpringHibernate基本知识.doc
- 关于jsp内置对象的详细讲解.doc
- jdk和tomcat6.0配置.doc
- MyEclipse开发SSH(Struts1+Spring+Hibernate)入门.docx
- Struts2SpringHibernate集成(2011-09-29).doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)