- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate知识的学习
Hibernate知识的学习
--------------------------------------------------第一章------------------------------------------------
1、为什么用Hibernate呢?
他属于ORM中的一种;用来解决对象与关系模型不匹配的;
===用来解决对象与关系模型不匹配的{方法有两种:使用JDBC手工来操作;还有就是使用ORM来解决};
学习Hibernate都要到那些包;
Hibernate自动创建表;
Hibernate测试类中应该怎样启动hibernate调用(主要是构造一个sessionFactory工厂,通过工厂来产生一个session对象,在通过session对象来对Hibernate操作数据库);
--------------------------------------------------第二章------------------------------------------------
Hibernate的开发流程;(三点)
Hibernate控制一个JavaBean时,应注意的JavaBean应该满足哪三点?
--------------------------------------------------第三章------------------------------------------------
做了一个简单的Hibernate的实例:其中编写了一个HibernateUtil.java文件来专门创建Session对象的一个公共组件!Hibernate02实例中
--------------------------------------------------第四章------------------------------------------------
Hibernate中Session是最核心的接口,现在我们来学习一下:
通过session对象来完成增、删、改、查、的主要操作!
1.session对象的常用方法:
save():添加一个对象,对应到表也就是添加一个信息;
delete():删除一个对象,对应到表也就是删除一条信息;
update():修改数据库信息,注意一点,当数据库没有信息时,会报出异常;
get():根据id查询信息,会立刻访问数据库;【查询数据库时可以不打开事务操作】;
Load():根据id查询信息,(返回的是代理,不会立即访问数据库【所以先不产生sql语句,而是当你真正的使用通过Load方法从数据库中去到的记录对象时才输出sql语句】也就是使用了懒加载机制 .如果在使用了Load方法了后,千万不要试图判断去到的对象是否为空值,因为load在这里将会产生出一个对应表JavaBean实体类的子类来处理的,相当于一个代理类的意味;通过user.getClass().getName()来获取这个代理类名称);
saveOrUpdate()和merge方法:根据id和version的值来确定是save或update),【调用merge你的对象还是托管的】。【托管中用到了】
refresh():将数据重新读取一次!
Lock()方法:查出一条数据,再给数据加一道锁【即为:把对象变成持久对象,但不会同步对象状态】
-------------------------------------------------------------------------------------------
注意:
1、get和load方法获取数据库表中记录的区别;
get():根据id查询信息,会立刻访问数据库;【查询数据库时可以不打开事务操作】;
Load():根据id查询信息,(返回的是代理,不会立即访问数据库【所以先不产生sql语句,而是当你真正的使用通过Load方法从数据库中去到的记录对象时才输出sql语句】也就是使用了懒加载机制 .如果在使用了Load方法了后,千万不要试图判断去到的对象是否为空值,因为load在这里将会产生出一个对应表JavaBean实体类的子类来处理的,相当于一个代理类的意味;通过user.getClass().getName()来获取这个代理类名称);
2、save和persist的区别:
在没开启事务的情况下:save将数据插入到数据库表中后又将该事务回滚了,结果会产生sql语句,但表中没数据;而persist在没开事务的情况下,不会提交数据,即为:不会有sql语句生成!
--------------------------------------------------第五章-------------------------
文档评论(0)