Hibernate学习总结分析和总结.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Hibernate初级学习总结

Hibernate是基于是么原因产生的?(Hibernate的有点)

答案:实现业务逻辑的代码和数据库访问代码掺杂在一起,使程序结构不清晰,可读性差

在程序代码中嵌入面向关系的SQL语句,使开发人员不能完全运用面向对象的思维来编写程序

业务逻辑和关系数据模型绑定,如果关系数据模型发生变化,例如修改了CUSTOMERS表的结构,那么必须手工修改程序代码中所有相关的SQL语句,这增加了维护软件的难度

如果程序代码中的SQL语句包含语法错误,在编译时不能检查这种错误,只有在运行时才能发现这种错误,这增加了调试程序的难度

Hibernate是什么?

它是连接Java应用程序和关系数据库的中间件

它对JDBCAPI进行了封装,负责Java对象的持久化

在分层软件体系结构中它位于持久化层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑

它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射

hibernate中进行DML数据库操作时当注意的事项!

PublicvoidinsertUser(Useruser){

Configurationcfg=newConfiguration().configure();SessionFactorysf=cfg.buildSessionFactory();Sessions=sf.openSession();

Transactiontx=s.beginTransaction();

//Transactiontx=s.getTransaction();tx.beigin();s.save(user);

mit();

}

1).Configuration这个对象是用来解析和读取hibernate配置文件的对象,进一创建hibernate上下文对象sessionFactory启动hibernate框架。

.configure()有了这个方法,程序就会自动去src根目录找所需要的配置文件。2).SessionFactory这是一个重量级的对象,它的创建将会使hibernate框架启动,进而创建Session对象,数据源的代理,是一个重量级的对象!如果每次都创建和销毁这样就会影响程序的运行效率,所以要单独的写在一个工具类当中,hibernae已经为我们写好了这个工具类,就是hibernateSessionFactory.java这个工具类。3)。Hibernate中要求必须要进行事物的控制才能正确的操作数据库,即没有自动提交。基于Session下创建的Transaction这个对象进行事物的控制。

3)。这里如果数据提交失败的话那它怎么没有数据回滚的操作呢?这里就要注意:其实hibernate已经在save()这个函数内帮我们做了try和catch进行了数据的回滚操作,即hibernate处理异常的方式是运行时异常RuntimenException。

Hibernate中复合主键的配置 多个字段合起来构成一个主键

当没有代理主键时,采用多个自然主键来做主键

两种映射方式:直接映射和间接映射

Demo3

直接法:

user.hbm.xml中配置如下:

composite-id

key-propertyname=“name”column=“name”type=“string”/

key-propertyname=“phone”column=“phone” type=“long”/

/composite-id

间接法:

ClassUsrPk{Stringname;Longphone;

}

ClassUser{

UserPkid;

}

Useru=newUser();UserPkid=newUserPk();id.setName(“bbb”);id.setPhone();u.setId(id);

user.hbm.xml中配置如下:

composite-idclass”com.bluedot.domain.UserPk”

key-propertyname=”name”column=”name”type=”string”/

key-propertyname=”phone”column=”phone”type=”long”

/composite-id

Hibernate的映射类型有那些?

Hibernate的映射类型是Java类型于SQL类型之间的桥梁

通过type属性来设置(如id和

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档