框架资料整理.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
框架资料整理

1.什么是Hibernate?Hibernate是数据访问层的框架,对JDBC的封装,是针对数据访问层提出的一套面向对象的解决办法。Hibernate允许我们直接访问实体对象,它会将这种访问自动转为SQL语句并执行,从而达到间接的访问数据库的目的,可以提高我们的访问层的开发效率。2.为什么用Hibernate?1)使用JDBC开发,存在哪些问题?--需要在代码中写大量的SQL语句--在SQL语句中包含大量的?,要给它们赋值--要把ResultSet转换成实体对象--使用了数据库特有的关键字,如果更换数据时,代码不可复用,也就是说移植性差。2)使用Hibernate,可以解决?--SQL自动生成--能够给?自动赋值--能够根据实体对象和数据库的关系,自动的将ResultSet转变为实体对象--采用统一的Api访问数据库,移植性好。3.Hibernate设计原理?--Hibernate采用ORM设计思想,对JDBC进行封装。--ORM:Object Relation Mapping:对象关系映射--Hibernate是实现了ORM思想,也就是解决实体对象和关系数据库之间的映射问题。同时维护了实体类和数据库的关系,以及类中的属性和数据库中的字段的关系。--有了这样的映射关系,Hibernate就可以让我们直接访问实体类对象,然后根据类和数据库之间的关系自动生成SQL语句并执行,达到访问数据的目的。类/属性--关系配置.xml--数据库表/字段--SQL语句--结果集--实例化对象--赋值4.Hibernate体系结构1)Hibernate.cfg.xml是Hibernate的主配置文件,可以用来设置数据库的链接以及Hibernate框架参数2)实体类Cost用来封装数据库结果的3)Cost.hbm.xml是映射文件,用来配置实体类和数据库表之间的关系,以及类中属性和表中字段的关系。4)Hibernate底层API主要是用来解析映射关系,能够得到类与库的关系,从而自动生成SQL语句。5.常用的API有哪些?1)Configuration加载主配置文件的,同时也加载映射文件。2)SessionFactory用于创建session对象的3)Session和HttpSession没有任何关系是Hibernate中数据库链接会话,和JDBC中的Connection一样,用于增删改查4)Transaction用于控制事务5)Query用来做特殊查询6.Hibernate的使用步骤?1)导包2)引入主配置文件3)实体类4)引入映射文件5)调用API执行增删改查7.Hibernate 映射类型1)在映射关系文件中,需要设置实体类中的属性和表中的字段,并且需要设置转换类型,即type=java.lang.String2)映射类型包含两种:a.如果某些类型是JAVA自带类型不能满足时,我们可以自己自定义一个类型,这个类型必须要实现UserType接口,以此实现类来充当映射类型b.Hibernate提供的类型--整数:byte,short,integer,longjava.lang.Integer--number(4)--小数:float,doublejava.lang.Double--number(9,2)--字符:stringjava.lang.String--varchar2(20)--日期:datejava.sql.Date--date--时间(时分秒):timejava.sql.Time--date--时间戳(年月日时分秒):timestampjava.sql.Timestamp--date--布尔:yes_no,true_falseyes_no:java.lang.Boolean--char(1) y/ntrue_false:java.lang.Boolean--char(1) t/f注意:Hibernate提供的类型都要小写8.Hibernate主键的生成方式1)sequence,采用序列的方式生成的主键(自增长的)只针对oracle数据库有效。generator class=sequenceparam name=sequence序列的名称/param/generator2)identity采用的数据库自增长的方式生成的主键。针对mysql,sqlServer等数据库。(oracle数据库除外)generator class=identity/generator3)native,根据方言来自动的选择主键生成方式,若方言是Oracle则使用sequence,若方言是其他,则使用identity.generator class=native!--如果方言是Oracle,则走sequence,如果方言不是oracle,则忽略下面param配置--

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档