您好,欢迎光临本网站![请登录][注册会员]  
文件名称: hibernate_基础入门
  所属分类: Java
  开发工具:
  文件大小: 8mb
  下载次数: 0
  上传时间: 2019-03-04
  提 供 者: wei231*******
 详细说明:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。黑马程序员偿智播下 com 改变中国∏T教育,我们正在行动 1213 JavaEE开发三层结构 EE开发的二层结构: 客户端层 Itml, CSS, IS TER Servlet, SP 上所有的应用 业务逻辑层 EIB:企业级 Javabean uts2+Spring+Hibernate). SSM 持久层 E开发的经典三层结构 客户端层 wb业务 厂持久层 S…v1wt,JsP JavaBean JDBc Struts2 Hib Spring Struts DLL⊥1s DAO钓框架 Webwork Sprinelvc Spring DBC的模板 122 Hibernate的概述 122.1什么是 Hibernate Hibernate框架是当今主流的Java持久层框架之一,由于它具有简单易学、灵活性强、扩展性强 等特点,能够大大地简化程序的代码量,提高工作效率,因此受到广大开发人员的喜爱。 Hibernate是一个开放源代码的ORM( Object Relational Mapping,对象关系映射)框架,它对 ⑩DBC进行了轻量级的对象封装,使得Jaa开发人员可以使用面向对象的编程思想来操作数据库。 Hibernate(开放源代码的对象关系映射框架)」 H bernate是一个开放源代码的对象关系映射框架,它对DBC进行了常轻里级的对象封装,它将POO与劫据库表建立 独射关系,是一个全自动的m框架, hi bernate可以自动生成sQL语句,自动执行,使得ava程序员可以随心所欲的使用对 象编程思维来操缦颏据库。 Hibernate可以应用在任何使用JBC的场合,既可以在Java的客户端程序使用,也冋以在 Seretse的Web应用中使用,最具革命意义的是, Hibernate可以在应用EB的EE架构中代CMP,完成数据持久化的 重任 Hibernate就是一个持久层的ORM的框架 ORM Object Relational Mapping对象关系映射 1222为什么要学习 Hibernate 使用传统的JBC开发应用系统时,如果是小型应用系统,并不觉得有什么麻烦,但是对于大 型应用系统的开发,使用JDBC就会显得力不从心。例如对几十、几百张包含几|个字段的表进行 插入操作时,编写的SQL语句不但很长,而且繁琐,容易出错:在读取数据时,需要写多条 getS 北京市昌平区北七家宏福创业园修正大厦3层电话:400-618-9090 黑马程序员|传智播客旗下 th高端T教育品牌 改变中国∏T教育,我们正在行动 语句从结果集中取出各个字段的信息,不但枯燥重复,并且工作量非常大。为了提高数据访问层的 编程效率, Gavin King开发出了一个当今最流行的的ORM框架,它就是 Hibernate框架。 所谓的ORM就是利用描述对象和数据库表之冋映射的元数据,自动把Java应用程序中的对象, 持久化到关系型数据库的表中。通过操作Java对象,就可以完成对数据库表的操作。可以把ORM 理解为关系型数据和对象的一个纽带,开发人员只需要关注纽带一端映射的对象即可。ORM原理如 图1-1所小。 业务逻辑模型 持久化层 数据存储层 域模型对象 o瞋射 关系型数据库 ORM原理 与其它操作数据库的技术相比, Hibernate具有以下几点优势 ●^ Hibernate对JDBC访问数据库的代码做了轻量级封装,大大简化了数据访问层繁琐的重复 性代码,并且减少了内存消耗,加快了运行效率 Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它很大程度的 简化了DAO( Data Access Object,数据访问对象)层编码工作。 ● Hibernate的性能非常好,映射的灵活性很出色。它攴持很多关系型数据库,从一对一到多 对多的各种复杂关系。 可扩展性强,由于源代码的开源以及API的开放,当本身功能不够用时,可以自行编码进 行扩展。 123 Hibernate的入门: 123.1下载 Hibernate5 http://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/ Home/ hibernate-orm /5.0.7Final Name Modified Size Downloads/ week ↑ Parent folder hibernate-release-5.0.7. Final. zip 2016-01-1394.1MB hibernate-release-5.0.7.Final tgz 2016-0113584MB Hibernate50.7版本下载后,解压完的目录结构如图所示。 北京市昌平区北七家宏福创业园修正大厦3层电话:400-6189090 黑马程序员|传智播客旗下 th高端T教育品牌 改变中国∏T教育,我们正在行动 台电脑N新加卷0D) hibernate-release:507Fnal 名称 修改日期 大小 documentation 2016/1/131245文件夹 2016/1/131245文件夹 project 2016/1/131245文件夹 自 changelog. txt 2016/1/131233文本文档 46 KB 回 hibernate_logo. gif 2013/4/1711:37GF文件 2 KB a lgpl. txt 2013/4/1711:37文本文档 从图可以看出, hibernate5.0.7的解压s目录中包含一系列的子目录,这些子目录分别用于存放不同 功能的文件,接下来针对这些子目录进行简单介绍,具体如下: documentation文件夹:存放 Hibernate的相关文档,包括参考文档的API文档。 lb文件夹:存放 Hibernate编译和运行所依赖的JAR包。其中 required子目录下包含了运 行 Hibernate5项目必须的JAR包 project文件夹:存放 Hibernate各种相关的源代码。 在lb/ required子目录中,包含的JAR包 玄台电脑新加卷(D) hibernate-release-5.0.7 inal lib k required 名称 修改日期 大小 画antr2,7jar 2014/4/28 20: 30 Executable Jar File 435KB 围dom4i-1.61ar 2014/4/28 20: 28 Executable Jar File 307KB s geronimo- ita_1.1_spec-111.jar 2015/5/511:26 Executable Jar File 16 KB s hibernate-commons-annotations-5.0..2015/11/30 10:22 Executable Jar File 74 KB s hibernate-core-5.0.7. Final. jar 2016/1/13 12: 35 Executable Jar File 5,453 KB s hibernate -jpa-21-api-1..0.Final jar 2014/4/28 20:30Executable Jar File 111KB 画当 janex-2.0.0 inal, jar 2015/11/30 10: 22 Executable Jar File 184KB s javassist-3181-GA jar 2014/4/28 20: 28 Executable Jar File 698KB 包 jboss-logging330 naljar 2015/5/28 12: 35 Executable Jar File 66 KB 1.2.3.2创建数据库和表 create database hibernate daoli use hibernate dayL CREATE TABLE cst customer cust id` bigint(32) NOT NULL AUTO INCREMENT COMMENT'客户编号(主键)', cust name varchar(32) NOT NULL COMMENT’客户名称(公司名称)’, cust source` varchar(32) DEFAULT NULL COMMENT·客户信息来源’, cust industry varchar(32) DEFAULT NULL COMMENT'客户所属行业', ct1eVe1 varchar(32) DEFAULT NULL COMMENT’客户级别', c: t phone archa(64) DEFAUL NULL COMMENT'固定电话', cust mobi1 e varchar(16) DEFAULT NULL COMMENT'移动电话', 北京市昌平区北七家宏福创业园修正大厦3层电话:400-618-9090 黑马程序员|传智播客旗下 th高端T教育品牌 改变中国∏T教育,我们正在行动 PRIMARY KEY( cust id) ENGINE=InnoDB AUTO INCREMENT=9 DEFAULT CHARSET=utf8i 12.33引入 Hibernate的开发包 数据库驱动包 mysql-connector-java-5.1.7-bin jar 2014/7/818: 41 Executable Jar File 694KB Hibernate/lib/required/jar 画antr-2.77jar 2014/4/28 20: 30 Executable Jar File 435KB 圖dom4-161ar 2014/4/28 20: 28 Executable Jar File 307KB E geronimo-jta_1.1_spec-1.1.1 jar 2015/5/5 11: 26 Executable Jar File 16 KB a hibernate-commons-annotations-5.0..2015/11/3010:22Executable JarFile 74 KB hibernate-core-5.0.7.Final. jar 2016/1/13 12: 35 Executable Jar File 5,453 KB s hibernate -jpa-2.1-api-100. Final jar 2014/4/28 20: 30Executable Jar File 111KB sljandex-2.0.0.Final jar 2015/11/30 10: 22 Executable Jar File 184KB 当 javassist:3181- GA jar 2014/4/28 20: 28 Executable Jar File 698KB jboss-logging-3. 3. 0.Final jar 2015/5/28 12: 35 Executable Jar File 66 KB 日志记录的包 画log4-12.16jar 2015/8/614:04 Executable Jar File 471KB 画s4api161ar 2015/8/614: 05 Executable Jar File 25 KB 幽sH4-og412-1.7.2jar 2015/8/614: 05 Executable Jar File 9 KB 1.234创建实体(持久化类) 持久化类是应用程序中的业务实体类,这里的持久化是指类的对象能够被持久化保存到数据库中。 Hibernate使用普通Java对象( Plain Old Java Object),即PoJo的编程模式来进行持久化。POJO类 中包含的是与数据库表相对应的各个属性,这些属性通过 getter FI setter方法来访问,对外部隐藏了 内部的实现细节。下面就来编写 Customer持久化类。 在项目src目录下,创建 cn. itcast domain包,并在包中创建实体类 Customer(对应数据库表 cst customer), Customer类包含与 cst customer数据表字段对应的属性,以及相应的 getXxx O和 setXxx O方法。 public class Customer t private Long cust idi private string cust namei private string cust sourcei private String cust industry private string cust level private string cust phone; private String cust mobile; 北京市昌平区北七家宏福创业园修正大厦3层电话:400-6189090 黑马程序员|传智播客旗下 th高端T教育品牌 改变中国∏T教育,我们正在行动 public Long get Cust id() i return cust id public void setcust id(Long cust id) I 七hs. cust lc= cust id; public string getCust name() return cust name public void setCust name(String cust name)t 七his.C1 st name cust name public String get Cust source() t return cust source ublic void setCust source(String cust source)t this cust source cust sourcei public String get Cust industry () return cust industry public void set Cust industry(string cust industry)I this cust industry cust industry } public string get Cust level() I return cust level public void set Cust level(String cust level st level public String get Cust phone() t return cust phone public void setCust phone(String cust phone)[ this cust phone cust phone public String getcust mobile()( return cust mobile } public void setCust mobile(String cust mobile) t this, cust mobile cust mobile 北京市昌平区北七家宏福创业园修正大厦3层电话:400-6189090 黑马程序员偿智播下 com 改变中国∏T教育,我们正在行动 1.2.3.5创建映射文件 实体类 Customer目前还不具备持久化操作的能力,而 Hibernate需要知道实体类 Customer映射到数 据库 Hibernate中的哪个表,以及类中的哪个属性对应数据库表中的哪个字段,这些都需要在映射文 件中配置。 在实体类 Customer所在的包中,创建一个名称为 Customer hbm.xml的映射文件,在该文件中定义了 实体类 Customer的属性是如何映射到 cst customer表的列上的。 K?xml version=1.0 encoding="UTF-8?> < DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3. 0//EN whttp://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd> property name="cust level"column="cust_ level"yn/> 12.3.6创建 Hibernate的核心配置文件 Hibernate的映射文件反映了持久化类和数据库表的映射信息,而 Hibernate的配置文件则主要用来配 置数据库连接以及 Hibernate运行时所需要的各个属性的值。在项目的src下创建一个名称为 hibernate. cfg. xml的文件 ?xm version-"1.0 encoding="UTE-8?> < DOCTYPE hibernate-confiquration PUBLIC -//Hibernate/Hibernate Configuration DTD 3O//EN http://www.hibernateorg/dtd/hibernate-configuration-3.0.dtd"> true hbm2dd1.auto的取值 :不用 Hibernate自动生成表 create 每次都会创建一个新的表.(测试) create-drop:每次都会创建一个新的表,执行程序结束后删除这个表.(测 北京市昌平区北七家宏福创业园修正大厦3层电话:400-6189090 黑马程序员|传智播客旗下 th高端T教育品牌 改变中国∏T教育,我们正在行动 update 如果数据库中有表,使用原来的表,如果没有表,创建一个 新表.可以更新表结构。 validate 只会使用原有的表.对映射关系进行校验 update 该配置文件设置了数据库连接的相关属性以及其它的一些常用属性,并且通过 mapping的 resource 属性将对象的映射信息加入到了 Hibernate的配置文件中 1.2.37编写测试代码 在项目中新建一个名称为 cn. itcast test的包,然后在包中建立一个名为 HibernateDemol. java的文件, 该文件是用来测试的类文件。 public class HibernateDemol I aTest 使用H a parnate 保存数据 public void demo1()t //1.加载配置文件: Configuration cfg new Configuration () configure()i //2.创建一个 SessionFactory SessionF actory sessionFactory cfg. buildsessionFactory()i /3.创建 Session对象. Session对象类似 Connection Session session sessionFactory. openSession() //4.开启事务 Transaction tx session beginTransaction ( /5.执行相关操作 Customer customer new Customer o customer. set Cust name("小王"); customer. set Cust source("网络推广") session. save( customer) //6.事务提交 tx commit( //7.释放资源 session. close(); 北京市昌平区北七家宏福创业园修正大厦3层电话:400-6189090
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: hibernate_基础入门
 输入关键字,在本站1000多万海量源码库中尽情搜索: