资源描述:
《Hibernate笔记说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、day1一.hibernate数据持久化组件对象持久化(ObjectPersistence):把数据保存在永久存储介质中(数据库)1.为什么要持久化:a.内存是暂时存储设备,断电后数据易丢失b.网络传输无法传输内存中的对象,需要将对象外化c.内存中数据查询,组织不方便d.内存只能存储少量数据2.怎样持久化a.对象序列化-->二进制流合并存储,粒度大,无规律不支持检索只适合少数个别对象的序列化b.用JDBC/EJB/ORM将数据存入数据库用JDBC:(JavaDBConnection)优点:底层开发,控制力强(细);效率最高;
2、标准的(SQL)JDBC,有可移植性缺点:过于复杂;代码量大;可维护性差(代码重用性低);用EJB:(EntityJavaBean)优点:直接自动生成JDBC代码;持久对象(PO)的状态由服务器管理;声明式的事务缺点:功能不全(特殊的组件,不能做继承关系);35EJB容器是侵入性容器,失去OO的优点;调试更复杂用ORM:(objectrelationmapping)对象关系映射优点:自动生成JDBC(代码量下降);使用(plainoldestjavaobject---pojo),非侵入型;提供状态管理;难度下降,不需要容器缺
3、点:由于开源,文档少;bug多;技术支持差结论:用java开发-->必须将数据持久化-->用数据库持久化-->须用ORM-->需要用Hibernate二.Hibernate1.POJO类plainoldestjavaobject,就是标准的JavaBean。2.HibernateHibernate-->一个可以自动的根据xml完成对象关系映射,并持久化到数据库的开源组件。其底层也是由JDBC实现的。hibernate是通过xml文件的配置,对数据库的底层的方言,以及数据库连接所需的信息,以及连接数据库的驱动。hibernat
4、e的系统配置文件hibernate.cfg.xml-->与数据库建立连接(一般放在项目的根目录下)XXXX.hbm.xml-->用来建立类与表之间的映射关系(一般将映射类的xml文件和实体类放在一起)3.HibernateAPIConfiguragion读配置文件(默认名:hibernate.cfg.xml)(org.hibernate.cfg.Configuration)35生成SessionFactory:SessionFactory重量级的对象,线程安全的(org.hibernate.SessionFactory),生
5、成Session.Session,相当于JDBC中的Connection(org.hibernate.Session),轻量级的对象,线程不安全(原则上一个线程一个Session,不要放在并发的环境中)生成TransactionTransaction管理事务的对象(org.hibernate.Transaction)Query查询对象,提供面向对象的查询语言(HQL)4.使用hibernate编程步骤1,配置环境,加载hibernate的jar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。2,写
6、hibernate所需的配置文件,hibernate.cfg.xml,XXX.hbm.xml3,写POJO类4,调用hibernateAPI。1)获得Configuration的对象,并调用他的configure()方法来读映射文件和配置文件,使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象2)使用SessionFactory对象openSession()方法创建Session对象。3)使用Transactiontrans=session.beginTra
7、nsaction();方法来打开一个事务4)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。session.delete();35 session.save()session.saveOrUpdate() session.update() session.load();5)调用trans.Commit()提交事务6)关闭资源附:1.环境配置:***导入hibernate库文件***1、在eclipse中建立一个java工程,如:hbn2、在工程hbn的属性--BuildPath中选择Ad
8、dLibraries3、在AddLibraries窗口中选择UserLibrary点next按钮4、在UserLibrary窗口中点UserLibraries...按钮5、在UserLibraries窗口中,点new按钮6、在Newuserlibrary窗口中,填写一个Userlibary