`

(day1)hibernate知识培训

阅读更多
. hibernate数据持久化组件
对象持久化(Object Persistence):把数据保存在永久存储介质中(数据库)
1.为什么要持久化:
a.内存是暂时存储设备,断电后数据易丢失
b.网络传输无法传输内存中的对象,需要将对象外化
c.内存中数据查询,组织不方便
d.内存只能存储少量数据
2.怎样持久化
a.对象序列化 --> 二进制流,合并存储,粒度大,无规律,不支持检索
只适合少数个别对象的序列化
b.JDBC/EJB/ORM 将数据存入数据库用JDBC:(Java DB Connection)
优点:底层开发,控制力强(); 效率最高; 标准的(SQL)JDBC,有可移植性缺点:过于复杂; 代码量大; 可维护性差(代码重用性低); 
EJB:(Entity Java Bean)
优点:直接自动生成JDBC代码; 持久对象(PO)的状态由服务器管理; 声明式的事务
缺点:功能不全(特殊的组件,不能做继承关系); EJB容器是侵入性容器,失去OO的优点; 调试更复杂用ORM:object relation mapping)对象关系映射
优点:自动生成JDBC(代码量下降); 使用(plain oldest java object---pojo),非侵入型; 提供状态管理; 难度下降,不需要容器
缺点:由于开源, 文档少; bug; 技术支持差
 结论: java开发-->必须将数据持久化-->用数据库持久化-->须用ORM-->需要用Hibernate
. Hibernate 
1.POJO
plain oldest java object,就是标准的Java Bean
2.Hibernate
Hibernate -->一个可以自动的根据xml完成对象关系映射,并持久化到数据库的开源组件。其底层也是由JDBC实现的。hibernate是通过xml文件的配置,对数据库的底层的方言,以及数据库连接所需的信息,以及连接数据库的驱动。
hibernate的系统配置文件
hibernate.cfg.xml -->与数据库建立连接(一般放在项目的根目录下)
XXXX.hbm.xml-->用来建立类与表之间的映射关系(一般将映射类的xml文件和实体类放在一起)
3.Hibernate API 
Configuragion   读配置文件(默认名:hibernate.cfg.xml)  (org.hibernate.cfg.Configuration)
生成SessionFactory:SessionFactory 重量级的对象, 线程安全的  (org.hibernate.SessionFactory),生成Session .
Session,相当于JDBC中的Connection  (org.hibernate.Session),轻量级的对象,线程不安全(原则上一个线程一个Session,不要放在并发的环境中)
生成Transaction
Transaction              管理事务的对象 (org.hibernate.Transaction)
Query                      查询对象,提供面向对象的查询语言(HQL)
4.使用hibernate编程步骤
1,配置环境,加载hibernatejar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。
2,写hibernate所需的配置文件,hibernate.cfg.xml XXX.hbm.xml
3,写POJO
4,调用hibernate API
1)使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象
2)使用SessionFactory对象openSession()方法创建Session对象。
3)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。
5. HQL语句
Query q = s.createQuery("from Account where actNo=:actNo");
//from 类名 where 属性名=:shuxingming
q.setLong("actNo",12345);//设置属性名,并赋值
q.uniqueResult()//获得匹配HQL的唯一属性
: 1.环境配置:
a. 类库
*** 导入hibernate 库文件 ***
1、在eclipse中建立一个java工程,如:hbn
2、在工程hbn的属性--Build Path中选择Add Libraries
3、在Add Libraries窗口中选择User Librarynext按钮
4、在User Library窗口中点User Libraries ...按钮
5、在User Libraries窗口中,点new按钮
6、在New user library窗口中,填写一个User libary name(:hbnlib,注意不要选择System libary 复选框),点OK按钮回到User Liberies窗口
7、在User Liberaries窗口中选择刚刚创建的hbnlib,Add jars按钮
8、在打开的文件选择窗口中找到解压好的hibernate的库文件,全部选中,点"打开"按钮,返回User Libraries窗口
9、在User Libraries窗口中点OK按钮,返回User Library 窗口;再点Finish按钮,结束操作
b. 驱动
c. 映射文件/配置文件 的模板
d. Eclips导入2DTD文件
*** 导入hibernate 库文件 ***
1、在eclipse中建立一个java工程,如:hbn
2、在工程hbn的属性--Build Path中选择Add Libraries
3、在Add Libraries窗口中选择User Librarynext按钮
4、在User Library窗口中点User Libraries ...<sp>
分享到:
评论

相关推荐

    hibernate培训第二天

    【hibernate培训第二天】——深入理解Hibernate框架 ...在“达内hibernate培训笔记”的Day2中,学员们将通过深入学习这些知识点,逐步掌握Hibernate的核心技术和使用技巧,为后续的项目开发打下坚实的基础。

    hibernate培训第三天

    **hibernate培训第三天** ...在达内的hibernate培训笔记中,每个Day3的章节可能都会详细讲解上述知识点,并通过实战项目加深理解。通过不断练习和实践,学员们将能熟练运用hibernate进行数据库操作,提高开发效率。

    hibernate培训第四天

    在"Day4"的训练中,我们可能通过实例深入学习了上述知识点,并动手实践了如何配置Hibernate项目、创建实体、编写映射文件、执行查询以及处理关联。通过不断的练习和理解,我们可以更好地掌握Hibernate的精髓,从而在...

    传智播客黑马35期

    day40_巩固知识之SSH编码实战演练 day41_巩固知识之SSH编码实战演练 day42_巩固知识之SSH编码实战演练 day43_巩固知识之SSH编码实战演练 day44_JavaScript增强AJAX基础 day45_Jquery框架 day46_Jquery加强和...

    达内培训机密资料_struts2_day04(3)

    通过对“达内培训机密资料_struts2_day04(3)”这一资料的分析,我们可以了解到这份资料旨在帮助学生深入学习Struts2框架,从理论到实践全面掌握Struts2的相关知识和技术。通过理解级别的基础知识学习,掌握级别的...

    达内培训机密资料_struts2_day01(3)

    根据提供的文件信息,我们可以推断出这是一份与Struts2框架相关的培训资料。下面将对Struts2框架的基础概念、特点以及如何进行基本的应用开发等方面进行详细介绍。 ### Struts2框架简介 #### 1. 框架概述 Struts2...

    达内培训机密资料_struts2_day02(3)

    1. **易于集成**:Struts2可以轻松地与其他开源框架如Spring、Hibernate等集成,共同构建强大的企业级应用。 2. **强大的拦截器机制**:通过自定义拦截器,开发者可以实现诸如权限验证、事务管理等功能。 3. **灵活...

    中联软博--高级软件架构设计-培训讲义.pdf

    #### Day1主题精析 1. **开发过程分析**:探讨如何确保需求完整,为设计阶段提供有价值的信息,强调架构决策的指导性和限制性。 2. **开发多条线索**:讲解项目并行开发策略,提高效率和应对复杂性的能力。 3. ...

    OSGi原理与实践

    提供的压缩包文件包含了"OSGi原理与实践"的多日培训内容,例如"Day3.pptx"、"Day2.pptx"和"Day5.pptx",这些文件可能涵盖了OSGi的基础概念、进阶技术和实际案例,可以帮助读者深入理解和掌握OSGi在实际项目中的应用...

    jdbc.rar_java jdbc_达内

    在“JDBC-day3 4-note-v1.0.pdf”和“JDBC-day1 2-note-v1.0.pdf”这两份笔记中,可能会详细讲解这些概念,并通过实例代码加深理解。通过深入学习和实践,读者可以全面掌握JDBC的使用,从而在实际项目中更高效地处理...

Global site tag (gtag.js) - Google Analytics