ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:49.97KB ,
资源ID:1928834      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1928834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(尚学堂hibernate学习笔记word.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

尚学堂hibernate学习笔记word.docx

1、尚学堂hibernate学习笔记word这个文件是我自己照着网上找到的马士兵老师的hibernate笔记截图版 手打出来的有颜色部分的文字是我学习的时候自己添加的笔记说明(红色的除外) 刨除去颜色部分 就是和马士兵老师的原版文档一模一样了 希望能给好学的朋友一点帮助目录课程内容 51 HelloWorld 52Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping53常见的0/R框架(了解) 54hibernate基础配置(重点) 55ID生成策略(重点 AUTO) 56Hibernate核心开发接口介绍(重点) 57对象的三种状态(了解) 58关系映

2、射(重点) 59Hibernate査询(HQL) 510在Struts基础上继续完善BBS200 511性能优化(重点) 512补充话题 5风格51先脉络,后细节 52先操作,后原理 53重Annotation,轻xml配置文件 5资源15http:/www. hibernate.org 52hibernate zh_CN文档 53hibernate annotation references 5环境准备 51 下载hibernate-distribution-3.3.2.GA-dist 52 下载hibernate-annotations-31.4.0.GA 53 注意阅读hibernate

3、 compatibility matrix(hibernate 网站download) 54 下载slf4jl.5.8 6Hibernate HelloWorld 61 建立新java 项目,名为hibernate_0100_HelloWorld 62 学习建User-library-hibernate,并加入相应的jar包 63 引入mysql的JDBC驱动包 64 在mysql中建立对应的数据库以及表 65 建立hibernate 配置文件hibernate.cfg.xml 66 建立Student 类 67 建立Student 映射文件 Student.hbm.xml 68 将映射文件加

4、入到hibernate.cfg.xml中 69 写测试类Main,在Main中对Student对象进行直接的存储测试 610 FAQ: 611 Note: 612 建立能力 7建立 Annotation 版本的 HelloWorld 71 创建teacher 表,create table teacher (id int primary key, name varhcar(20), title varchar(lO); 72 创建Teacher 类 73 在hibernate lib 中加入annotation的jar包 74 参考Annotaion文档建立对应的注解 75 在hibernate

5、.cfg.xml中建立映射mapping class:./ 76 参考文裆进行测试(注意文裆中缺少configure()的小bug) 77 FAQ: 不给提示 7What is and Why 0/R Mapping 71 JDBC操作数据库很繁琐 72 Sql语句编写并不是面向对象的 73 可以在对象和关系表之间建立关联来简化编程 74 0/R Mapping 简化编程 75 0/R Mapping跨越数据库平台 76 Hibernate_0200_OR_Mapping_Simulation 70/R Mapping Frameworks 71 hibernate 72 toplink 83

6、 jdo 84 JPA 8Hibernate基础配置 81 对应项目:Hibernate_0300_BasicConfiguration 82 介绍MSQL的图形化客户端 83 hibernate.cfg.xml: hbni2ddl.auto 84 搭建日志环境并配置显示DDL语句 85 搭建jUnit环境 86 hibernate.cfg.xml:show_sql 87 hibernate.cfg.xml:format_sql 88 表名和类名不同,对表名进行配置 89 字段名和属性相同 810 字段名和属性名不同 811 不需要psersistence的字段(不用列) 812 映射日期与时

7、间类型,指定时间精度 813 映射枚举类型( 比较少用) 914 字段映射的位置(field或者get方法) 915 Lob 916 课外:CLOBBLOB类型的数据存取 917 课外:Hibernate自定义数据类型 918 hibernate 类型 9ID生成策略 91 对应项目:hibernate_0400_ID 92 注意: 93 xml生成id 94 注解方式:GeneratedValue 95 FAQ; 106 联合主键 10核心幵发接口介绍 121 hibernate_0500_CoreAPI 122 Hibernate API文档需要单独下载 123 Configuration

8、 124 SessoinFactor 125 Session 126 SchemaExport (自动建表) 137 Query 接口 138 Note: 13三种对象状态 141 上一个 project 142 三种状态的区分关键在于 143 三种状态: 144 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什 么结果,比 如改变属性的 14关系映射(重要) 15对象之间的关系 151 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决 的问题是当对象之间处于 152 简化问题: 153 对一 154 对多 155 组件映射 15一对一关联 161 一对一单

9、向外键关联 162 一对一双向外键关联 163 一对一单向主键关联(不重要) 174 一对一双向主键关联(不重要) 175 联合主键 17组件映射 171 项目:hibernate_1100_component 172 对象关系:一个对象是另外一个对象的一部分 173 数据库表:一张表 174 annotation: Embeddable Embbeded 175 xml: 使用HQL. EJBQL(JPQL 1.0) QBC(Query By Criteria) QBE(Query By Example)262 总结:QL应该和导航关系结合,共同为査询提供服务。 26性能优化 261 注意s

10、ession.clear()的运用,尤其在不断分页循环的时候 262 1+N问题 (典型的面试题) (详见hibernate_2800_Hibernate_1+N项目) 263 list和iterate不同之处(/主要为了面试 详见hibernate_2900_Hibernate_list_iterate) 264 一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache) 265 事务并发处理(面试的意义更大) 27课程内容1 HelloWorld a) Xmlb) annotation2 Hibernate原理模拟 - 什么

11、是O/R Mapping以及为什么要有O/R Mapping3 常见的0/R框架(了解)4 hibernate基础配置(重点)5 ID生成策略(重点 AUTO)6 Hibernate核心开发接口介绍(重点)7 对象的三种状态(了解)8 关系映射(重点)9 Hibernate査询(HQL)10 在Struts基础上继续完善BBS20011 性能优化(重点)12 补充话题风格1 先脉络,2 后细节3 先操作,4 后原理5 重Annotation,轻xml配置文件a) JPAb) hibernate extension资源1 http:/www. hibernate.org2 hibernate z

12、h_CN文档3 hibernate annotation references环境准备3 注意阅读hibernate compatibility matrix(hibernate 网站download)4 下载slf4jl.5.8Hibernate HelloWorld1 建立新java 项目,名2 为hibernate_0100_HelloWorld3 学习建User-library-hibernate,并加入相应的jar包a) 项目右键-buildpath-configure build path-add library c) 选择User-library,在其中新建 libraray,命

13、名为 hibernate d) 在该library中加入hibernate所需jar包i. hibernate core ii. /requirediii. slf-nop jar4 引入mysql的JDBC驱动包5 在mysql中建立对应的数据库以及表 a) create database hibernate; b) use hibernate;c) create table Student (id int primary key, namevarchar(20), age int);6 建立hibernate 配置文件hibernate.cfg.xml a) 从参考文档中copyb) 修改

14、对应的数据库连接d) 注释掉暂时用不上的内容7 建立Student 类8 建立Student 映射文件 Student.hbm.xml a) 参考文档9 将映射文件加入到hibernate.cfg.xml中a) 参考文档10 写测试类Main,在Main中对Student对象进行直接的存储测试a) 参考文挡11 FAQ:c) 要调用 new Configuration().configure().buildSessionFactory(),而不是 要省略 configure,否则会出 hibernate dialect must be set 的异常12 Note:a) 请务必建立自己动手査文

15、挡的能力b) 重要的是:i. 要建立自己动手查一手文档的信心ii. 还有建立自己动手查一手文档的习惯!v. 主动学习,砍弃被动接受灌输的习惯!13 建立能力a) 错误读完整b) 读昔误的关键行c) 排除法 d) 比较法 e) google建立 Annotation 版本的 HelloWorld1 创建teacher 表,2 create table teacher (id int primary key, name varhcar(20), title varchar(lO);3 创建Teacher 类4 在hibernate lib 中加入annotation的jar包a) hibernat

16、e annotaion jar b) ejb3 persistence jarc) hibernate common-annotations.jard) 注意文裆中没有提到hibernate-common-annotations.jar 文件5 参考Annotaion文档建立对应的注解6 在hibernate.cfg.xml中建立映射mapping class:./7 参考文裆进行测试(注意文裆中缺少configure()的小bug)8 FAQ: 不9 给提示a) 配置eclipse属性信息content assist-activation-加上What is and Why 0/R Mapp

17、ing1 JDBC操作数据库很繁琐2 Sql语句编写并不3 是面向对象的4 可以在对象和关系表之间建立关联来简化编程7 Hibernate_0200_OR_Mapping_Simulation0/R Mapping Frameworks1 hibernate2 toplink3 jdo4 JPAa) 意愿统一天下Hibernate基础配置1 对应项目:Hibernate_0300_BasicConfiguration2 介绍MSQL的图形化客户端3 hibernate.cfg.xml: hbni2ddl.auto a) 先建表还是先建实体类4 搭建日志环境并配置显示DDL语句c) slf4j与

18、log4j的关系:slf4j像是一个大管家,可以管理许多的日志框架,log4j是其中 之一d) 加入slf4j-log4j.jar,加入 log4j 的 jar 包,去掉 slf4-nop.jar e) 从hibernate/project/etc 目录 copy log4j.propertiesh) 査询hibernate文裆,日志部分,调整日志的输出策略5 搭建jUnit环境a) 需要注意jUnit的Bug6 hibernate.cfg.xml:show_sql7 hibernate.cfg.xml:format_sqltrue8 表名9 和类名10 不同11 ,对表名12 进行配置a)

19、Annotation: Table b) xml:自己査询13 字段名14 和属性相同15a)不b) 用写column 与默认的Basic效果一样c)Xml中不d) 用写 column16 字段名17 和属性名18 不同19a)Annotation: Columnb)xml:自己査询20 不21 需要psersistence的字段(不22 用列)a)Annotation:Transientb)xml不c) 写23 映射日期与时间类型,24 指25 定时间精度a) Annotation:Temporal(参数) 参数有3种 只显示时间,只显示日期,时间日期都显示/Temporal(Tempora

20、lType.DATE) 只显示日期/Temporal(TemporalType.TIME) 只显示时间/Temporal(TemporalType.TIMESTAMP) 显示日期与时间b) xml:指c) 定 type26 映射枚举类型( 比较少用)a)EnumeratedEnumerated(EnumType.ORDINAL) 枚举类型按位置数,如:0,1,2 .存储Enumerated(EnumType.STRING) 枚举类型按设定值存储b)xml:麻烦27 字段映射的位置(field或者get方法)a) best practice:保持 field(变量定义) 和 get set 方法

21、的一致28 Lob29 课外:CLOBBLOB类型的数据存取30 课外:Hibernate自定义数据类型31 hibernate 类型ID生成策略1 对应项目:hibernate_0400_ID2 注意:a) 我们观察hibernate生成表的结构并不是为了将来就用它生成,(可能还有自己 的扩展,比如index等)而是为了明白我们应该建立什么样的表和实体类映射3 xml生成idb) 常用四个:native identity sequence uuid4 注解方式:GeneratedValue a) 自定义IDb) AUTO(直接写 GeneratedValue 相当如native)i. 默认:

22、对 MySQL,使用auto_incrementiii. 对 Oracle使用hibernate_sequence(名称固定)c) IDENTITY(GeneratedValue(strategy=GenerationType.IDENTITY)d) SEQUENCE(GeneratedValue(strategy=GenerationType.SEQUENCE)iii. SequenceGenerator(可自定义在数据库生成指定的sequence名)Id/在GeneratedValue中增加 generator=teacherSEQGeneratedValue(strategy=Gener

23、ationType.SEQUENCE,generator=teacherSEQ)/teacherSEQ为SequenceGenerator的标识名/teacherSEQ_DB为指定到数据库生成的Sequence名SequenceGenerator(name=teacherSEQ, sequenceName=teacherSEQ_DB)public int getId() return id;e) TABLE (可以忘记)i. TableGeneratorTableGenerator(name=teacherID, table=teacherID_DB, pkColumnName=key_val

24、ue, pkColumnValue=pk_value, valueColumnName=teacher, allocationSize=1)5 FAQ;注:如果使用注解方式的uuid 如下:IdGeneratedValue(generator=teacherUUID)GenericGenerator(name=teacherUUID, strategy=uuid)a) 用Junit测试时Hibernate Session Factory初始化异常不b) 提示.疑似一个bug c) 用main来做测试6 联合主键a) Xml方式: composite-idii. 将联合主键的属性提取出来,重新编

25、写一个pojo类(原pojo类中的id,name要删除 并新加入属性“StudentPK”)public class StudentPK implements Serializable private String id;private String name; iii. 新建pojo类必须实现 java.io.Serializable 序化接口iv. 新pojo类要重写equals和hashCode方法Overridepublic boolean equals(Object o) if(o instanceof StudentPk) StudentPk pk = (StudentPk)o;if(this.id = pk.getId() & this.name.equals(pk.getName() return true;return false;Overridepublic int hashCode() return this.name.hashCode();v. 联合主键生成策略XML配置方法property name=

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2