Hibernate_学习总结 (5000字) 学习总结 .docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate_学习总结 (5000字) 学习总结

Hibernate_学习总结 (5000字) 学习总结 Hibernate初级学习总结 1. Hibernate是基于是么原因产生的?(Hibernate的有点) ? 答案:实现业务逻辑的代码和数据库访问代码掺杂在一起,使程序结构不清晰,可 读性差 ? 在程序代码中嵌入面向关系的SQL语句,使开发人员不能完全运用面向对象的思维 来编写程序 ? 业务逻辑和关系数据模型绑定,如果关系数据模型发生变化,例如修改了 CUSTOMERS表的结构,那么必须手工修改程序代码中所有相关的SQL语句,这增加了维护软件的难度 ? 如果程序代码中的SQL语句包含语法错误,在编译时不能检查这种错误,只有在运行时才能发现这种错误,这增加了调试程序的难度 2. Hibernate是什么? ? 它是连接Java应用程序和关系数据库的中间件 ? 它对JDBC API进行了封装,负责Java对象的持久化 ? 在分层软件体系结构中它位于持久化层,封装了所有数据访问细节,使业务逻辑层 可以专注于实现业务逻辑 ? 它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射 3. hibernate中进行DML数据库操作时当注意的事项! Public void insertUser(User user){ Configuration cfg = new Configuration().configure();SessionFactory sf = cfg.buildSessionFactory();Session s = sf.openSession(); Transaction tx = s.beginTransaction(); //Transaction tx = 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。 4.Hibernate中复合主键的配置多个字段合起来构成一个主键 ? 当没有代理主键时,采用多个自然主键来做主键 ? 两种映射方式:直接映射和间接映射 ? Demo3 直接法: user.hbm.xml 中配置如下: lt;composite-idgt; lt;key-property name=“name” column=“name” type=“string” /gt; lt;key-property name=“phone” column=“phone” type=“long”/gt; lt;/composite-idgt; 间接法: Class UsrPk{ String name; Long phone; } Class User{ UserPk id; } User u = new User(); UserPk id = new UserPk(); id.setName(“bbb”); id.setPhone(); u.setId(id); user.hbm.xml 中配置如下: lt;composite-id class”com.bluedot.domain.UserPk”gt; lt;key-p

文档评论(0)

raojun00004 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档