2022年马士兵hibernate学习笔记 .pdf
《2022年马士兵hibernate学习笔记 .pdf》由会员分享,可在线阅读,更多相关《2022年马士兵hibernate学习笔记 .pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、马士兵 hibernate 学习笔记 (文字整理版 ) 课程内容 . 5 1 HelloWorld . 5 2 Hibernate 原理模拟 - 什么是 O/R Mapping 以及为什么要有O/R Mapping . 5 3 常见的 0/R 框架 (了解 ) . 5 4 hibernate 基础配置(重点). 5 5 ID 生成策略(重点 AUTO) . 5 6 Hibernate 核心开发接口介绍(重点). 5 7 对象的三种状态(了解) . 5 8 关系映射(重点) . 5 9 Hibernate 査询( HQL) . 5 10 在 Struts 基础上继续完善BBS200 . 5 11
2、 性能优化(重点) . 5 12 补充话题 . 5 风格 . 5 1 先脉络,后细节 . 5 2 先操作,后原理 . 5 3 重 Annotation, 轻 xml 配置文件 . 5 资源 . 5 1 http:/www. hibernate.org . 5 2 hibernate zh_CN 文档 . 5 3 hibernate annotation references . 5 环境准备 . 5 1 下载 hibernate-distribution-3.3.2.GA-dist . 5 2 下载 hibernate-annotations-31.4.0.GA . 5 3 注意阅读 hibe
3、rnate compatibility matrix(hibernate 网站 download) . 5 4 下载 slf4jl.5.8 . 6 Hibernate HelloWorld . 6 1 建立新 java 项目 ,名为 hibernate_0100_HelloWorld . 6 2 学习建 User-library-hibernate, 并加入相应的jar 包 . 6 3 引入 mysql 的 JDBC 驱动包 . 6 4 在 mysql 中建立对应的数据库以及表. 6 5 建立 hibernate 配置文件hibernate.cfg.xml. 6 6 建立 Student 类
4、. 6 7 建立 Student 映射文件 Student.hbm.xml . 6 8 将映射文件加入到hibernate.cfg.xml 中. 6 9 写测试类 Main, 在 Main 中对 Student 对象进行直接的存储测试 . 6 10 FAQ: . 6 11 Note: . 6 12 建立能力 . 7 建立 Annotation 版本的 HelloWorld . 7 1 创建 teacher 表, create table teacher (id int primary key, name varhcar(20), title varchar(lO); . 7 2 创建 Teac
5、her 类 . 7 3 在 hibernate lib 中加入 annotation 的 jar 包 . 7 4 参考 Annotaion 文档建立对应的注解. 7 5 在 hibernate.cfg.xml 中建立映射 mapping class:./ . 7 6 参考文裆进行测试(注意文裆中缺少configure() 的小 bug) . 7 7 FAQ: 不给提示 . 7 What is and Why 0/R Mapping. 7 1 JDBC 操作数据库很繁琐. 7 2 Sql 语句编写并不是面向对象的 . 7 3 可以在对象和关系表之间建立关联来简化编程. 7 4 0/R Mappi
6、ng 简化编程 . 7 5 0/R Mapping 跨越数据库平台 . 7 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 30 页 - - - - - - - - - 6 Hibernate_0200_OR_Mapping_Simulation . 7 0/R Mapping Frameworks. 7 1 hibernate . 7 2 toplink . 8 3 jdo . 8 4 JPA . 8 Hibernate 基础配置 . 8 1 对应项目: Hiberna
7、te_0300_BasicConfiguration . 8 2 介绍 MSQL 的图形化客户端. 8 3 hibernate.cfg.xml: hbni2ddl.auto . 8 4 搭建日志环境并配置显示DDL 语句 . 8 5 搭建 jUnit 环境 . 8 6 hibernate.cfg.xml :show_sql . 8 7 hibernate.cfg.xml :format_sql . 8 8 表名和类名不同,对表名进行配置. 8 9 字段名和属性相同 . 8 10 字段名和属性名不同 . 8 11 不需要 psersistence的字段 (不用列 ) . 8 12 映射日期与时间
8、类型,指定时间精度. 8 13 映射枚举类型( 比较少用 ) . 9 14 字段映射的位置(field 或者 get 方法) . 9 15 Lob . 9 16 课外: CLOBBLOB类型的数据存取 . 9 17 课外: Hibernate 自定义数据类型. 9 18 hibernate 类型 . 9 ID 生成策略 . 9 1 对应项目: hibernate_0400_ID . 9 2 注意: . 9 3 xml 生成 id . 9 4 注解方式: GeneratedValue . 9 5 FAQ; . 10 6 联合主键 . 10 核心幵发接口介绍. 12 1 hibernate_050
9、0_CoreAPI . 12 2 Hibernate API 文档需要单独下载 . 12 3 Configuration . 12 4 SessoinFactor . 12 5 Session . 12 6 SchemaExport (自动建表 ) . 13 7 Query 接口 . 13 8 Note: . 13 三种对象状态. 14 1 上一个 project . 14 2 三种状态的区分关键在于 . 14 3 三种状态: . 14 4 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比如改变属性的. 14 关系映射 (重要 ) . 15 对象之间的关系. 15
10、1 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题是当对象之间处于. 15 2 简化问题: . 15 3 对一 . 15 4 对多 . 15 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 30 页 - - - - - - - - - 5 组件映射 . 15 一对一关联. 16 1 一对一单向外键关联 . 16 2 一对一双向外键关联 . 16 3 一对一单向主键关联(不重要) . 17 4 一对一双向主键关联(不重要) . 17 5 联合主键
11、. 17 组件映射 . 17 1 项目: hibernate_1100_component . 17 2 对象关系:一个对象是另外一个对象的一部分. 17 3 数据库表:一张表 . 17 4 annotation: Embeddable Embbeded . 17 5 xml: 使用 HQL. EJBQL(JPQL 1.0) QBC(Query By Criteria) QBE(Query By Example) 26 2 总结: QL 应该和导航关系结合,共同为査询提供服务。. 26 性能优化 . 26 1 注意 session.clear()的运用,尤其在不断分页循环的时候. 26 名师资
12、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 30 页 - - - - - - - - - 2 1+N 问题 (典型的面试题) (详见 hibernate_2800_Hibernate_1+N 项目 ) . 26 3 list 和 iterate 不同之处( /主要为了面试详见 hibernate_2900_Hibernate_list_iterate ) . 26 4 一级缓存和二级缓存和査询缓存(面试题)(详见 hibernate_3000_Hibernate_3Kind
13、sOf_Cache)26 5 事务并发处理 (面试的意义更大) . 27 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 30 页 - - - - - - - - - 课程内容1HelloWorld a) Xml b) annotation 2Hibernate原理模拟 - 什么是 O/R Mapping 以及为什么要有O/R Mapping 3常见的 0/R 框架 ( 了解 ) 4hibernate基础配置(重点)5ID 生成策略(重点 AUTO) 6Hibernate
14、核心开发接口介绍(重点)7对象的三种状态(了解)8关系映射(重点)9Hibernate査询( HQL) 10 在 Struts基础上继续完善BBS200 11 性能优化(重点)12 补充话题风格1先脉络,后细节2先操作,后原理3重 Annotation,轻 xml 配置文件a)JPA b)hibernate extension 资源1http:/www. hibernate.org 2hibernate zh_CN文档3hibernate annotation references 环境准备1下载 hibernate-distribution-3.3.2.GA-dist 2下载 hiberna
15、te-annotations-31.4.0.GA 3注意阅读 hibernate compatibility matrix(hibernate 网站 download) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 30 页 - - - - - - - - - 4下载 slf4jl.5.8 Hibernate HelloWorld 1建立新 java 项目 , 名为 hibernate_0100_HelloWorld 2学习建 User-library-hibernat
16、e,并加入相应的jar包a)项目右键 -buildpath-configure build path-add libraryb)选择 User-library,在其中新建 libraray,命名为 hibernate c)在该 library中加入 hibernate所需 jar包i.hibernate core ii./required iii.slf-nop jar 3引入 mysql 的 JDBC驱动包4在 mysql 中建立对应的数据库以及表a)create database hibernate;b)use hibernate;c)create table Student (id in
17、t primary key, namevarchar(20), age int);5建立 hibernate 配置文件hibernate.cfg.xml a)从参考文档中copy b)修改对应的数据库连接c)注释掉暂时用不上的内容6建立 Student 类7建立 Student 映射文件 Student.hbm.xml a)参考文档8将映射文件加入到hibernate.cfg.xml中a)参考文档9写测试类 Main, 在 Main 中对 Student 对象进行直接的存储测试a)参考文挡10 FAQ :a)要调用 new Configuration().configure().buildSe
18、ssionFactory(),而不是要省略 configure,否则会出 hibernate dialect must be set 的异常11 Note: a)请务必建立自己动手査文挡的能力b)重要的是 : i.要建立自己动手查一手文档的信心ii.还有建立自己动手查一手文档的习惯!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 30 页 - - - - - - - - - iii.主动学习,砍弃被动接受灌输的习惯!12 建立能力a)错误读完整b)读昔误的关键行c)排除法
19、d)比较法e)google 建立 Annotation 版本的 HelloWorld 1创建 teacher 表, create table teacher (id int primary key, name varhcar(20), title varchar(lO); 2创建 Teacher 类3在 hibernate lib 中加入 annotation的 jar包a)hibernate annotaion jar b)ejb3 persistence jar c)hibernate common-annotations.jar d)注意文裆中没有提到hibernate-common-a
20、nnotations.jar 文件4参考 Annotaion文档建立对应的注解5在 hibernate.cfg.xml中建立映射 mapping class:./6参考文裆进行测试(注意文裆中缺少configure()的小 bug) 7FAQ: 不给提示a)配置 eclipse属性信息content assist-activation-加上 What is and Why 0/R Mapping 1JDBC操作数据库很繁琐2Sql 语句编写并不是面向对象的3可以在对象和关系表之间建立关联来简化编程40/R Mapping 简化编程50/R Mapping 跨越数据库平台6Hibernate_0
21、200_OR_Mapping_Simulation 0/R Mapping Frameworks 1hibernate 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 30 页 - - - - - - - - - 2toplink 3jdo 4JPA a)意愿统一天下Hibernate基础配置1对应项目: Hibernate_0300_BasicConfiguration 2介绍 MSQL 的图形化客户端3hibernate.cfg.xml: hbni2ddl.auto
22、:create、update。a) 先建表还是先建实体类先建表4搭建日志环境并配置显示DDL 语句a)slf4j 与 log4j 的关系: slf4j 像是一个大管家,可以管理许多的日志框架,log4j 是其中之一b)加入 slf4j-log4j.jar, 加入 log4j 的 jar 包,去掉 slf4-nop.jar c)从 hibernate/project/etc 目录 copy log4j.properties d)査询 hibernate 文裆,日志部分,调整日志的输出策略5搭建 jUnit 环境a) 需要注意jUnit 的 Bug 6hibernate.cfg.xml :show
23、_sql 是否输出SQL 语句7hibernate.cfg.xml :format_sql 格式化 SQL 语句,美化SQL 语句 true 8表名和类名不同,对表名进行配置a)Annotation: Table b)xml: 自己査询9字段名和属性相同a)不用写 column 与默认的 Basic 效果一样b)Xml 中不用写 column 10 字段名和属性名不同a)Annotation: Column b)xml: 自己査询11 不需要 psersistence的字段 (不用列 ) a)Annotation :Transient 定义不写入数据库,属性透明b)xml 不写12 映射日期与
24、时间类型,指定时间精度a)Annotation :Temporal( 参数 ) 参数有 3 种 只显示时间 ,只显示日期 ,时间日期都显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 30 页 - - - - - - - - - /Temporal(TemporalType.DATE) 只显示日期/Temporal(TemporalType.TIME) 只显示时间/Temporal(TemporalType.TIMESTAMP) 显示日期与时间b)xml: 指定 typ
25、e 13 映射枚举类型 ( 比较少用 ) a)Enumerated Enumerated(EnumType.ORDINAL) 枚举类型按位置数,如:0,1,2 .存储Enumerated(EnumType. STRING) 枚举类型按设定值存储b)xml: 麻烦14 字段映射的位置(field 或者 get 方法)a) best practice:保持 field( 变量定义 ) 和 get set 方法的一致15 Lob 16 课外: CLOBBLOB类型的数据存取17 课外: Hibernate 自定义数据类型18 hibernate 类型ID 生成策略1对应项目: hibernate_0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年马士兵hibernate学习笔记 2022 士兵 hibernate 学习 笔记
限制150内