ch11-Hibernate框架
- 格式:pdf
- 大小:597.03 KB
- 文档页数:79
10
2. HIBERNATE框架快速入门
创建持久化类(POJO)
在创建持久化类时,应注意以下事项: 持久化类和类中的方法不能为final修饰; 创建的持久类建议实现Serializable序列化接口; 为持久类创建一个标识属性id,该属性映射数据库表 的主键字段; 类的各属性为private类型,并为类的各属性提供 public类型的访问器(setter和getter方法)。
<!-- 在操作数据库时是否打印SQL语句 -->
<property name="hibernate.show_sql">true</property> <!-- 打开 hbm2ddl.auto 选项将自动生成数据库模式(schema)- 直接加入数据库中 --> <property name="hbm2ddl.auto">update</property> <!-- 配置ORM映射文件 --> <mapping resource="com/henu/domain/Person.hbm.xml"></mapping> </session-factory> </hibernate-configuration>
目标:
掌握Eclipse项目Hibernate的配置方法; 掌握MyEclipse Hibernate项目的使用用法。
清 华 大 学 出 版 社
14
2. HIBERNATE框架快速入门
理解hibernate.cfg.xml
hibernate.connection.driver_class:指定连接数据库的 驱动工具类,如MySQL为“com.mysql.jdbc.Driver”, 若连接其它数据库,其驱动工具类名称参阅第4章内容。 hibernate.connection.url:指定连接数据库的URL,如 连接本地MySQL中的test数据库,其URL为 “jdbc:mysql://localhost:3306/test”。 hibernate.connection.password:指定连接数据库的 密码。 ername:指定连接数据库的 用户名。 hibernate.dialect:指定连接数据库的方言。
清 华 大 学 出 版 社
6
1. ORM概述
Hibernate的特点:
Hibernate对JDBC访问数据库的代码做了封装,大大简 化了数据访问层繁琐的重复性代码; Hibernate是一个基于JDBC的主流持久化框架,是一个 清 优秀的ORM实现工具。它很大程度上简化了DAO层的 华 大 编码工作; 学 出 版 Hibernate使用Java反射机制,而不是用字节码增强程 社 序来实现透明性; 由于Hibernate是一个轻量级框架,性能较好。 Hibernate映射的灵活性很出色,支持各种关系数据库, 从一对一到多对多的各种复杂关系。 7
清 华 大 学 出 版 社
8
2. HIBERNATE框架快速入门
复制以下文件至项目的WEB-INF/lib目录(含JDBC 驱动)
清 华 大 学 出 版 社
9
2. HIBERNATE框架快速入门
创建Hibernate配置文件hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 定义数据库连接驱动 --> <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver</property> <!-- 定义数据库服务器地址 --> <property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/test</property>
5
1. ORM概述
主流ORM框架:
Hibernate:JBoss属下的一个ORM工具,同时也是当前最为主流的 开源ORM框架。Hibernate对JDBC进行了轻量级的封装,将Java对象 与对象关系映射至关系型数据库中的数据表与数据表之间的关系。 mybatis:原名叫iBATIS,由Clinton Begin在2001年发起的开放源代 码项目,曾是Apache的一个开源项目,2010年这个项目由Apache迁 移到Google code,并且改名为mybatis。在对数据库的操作过程中, mybatis使用半自动的即开发人员可以手写SQL语句,在系统的数据库 优化方面提供了较多的空间。相对于Hibernate而言,mybatis只能算 是一个半自动化的ORM框架。 OJB:Apache的一个开源项目,是iBATIS的一个后继ORM产品。OJB 使用基于XML的对象关系映射。OJB能够完成从Java对象到关系数据 库的透明存储。 TopLink:一个Oracle公司的商业产品,TOPLink在关系数据库表中存 储Java对象和EJB提供了高度灵活和高效的机制。TopLink为开发人员 提供极佳的性能和选择,可以与任何数据库、任何应用服务器、任何 开发工具集和过程以及任何Java EE体系结构协同工作。
清 华 大 学 出 版 社
13
2. HIBERNATE框架快速入门
动手实践:
新建一个数据表User(ID,用户名,密码,类型,注册 时间,主键为ID); 为Java Web项目配置Hibernate支持能力; 编写数据表对应的POJO; 编写Hibernate的配置文件; 编写映射文件;
清 华 大 学 出 版 社
11
2. HIBERNATE框架快速入门
定义ORM映射文件
ORM映射文件的主要作用就是指定持久化类与数据库表之间的映射关系。Hibernate的映射文件也 采用XML文档格式,映射文件也保存至CLASSPATH指定的路径下。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- class元素定义持久化类的具体包路径、关联的数据库及表名称 --> <class name="com.henu.domain.Person" table="person" catalog="test"> <!-- id元素定义表的主键对应持久化类中的属性名称、数据类型 --> <id name="id" type="ng.Integer"> <!-- column元素定义表的主键 --> <column name="id" /> <!-- generator元素定义表的主键生成方式,这里采用native方式 --> <generator class="native"></generator> </id> <!-- property元素定义持久化类的其它属性与表中列名之间的对照关系及数据类型等 --> <property name="name" type="ng.String"> <column name="name" length="20" not-null="true" /> </property> </class> </hibernate-mapping>
3
清 华 大 学 出 版 社
1. ORM概述
ORM(Object/Ralation
Mapping,ORM) 是解决在面向对象的编程中,程序设计语言 与关系型数据库发展不匹配而提出来的一种 中间层解决方案。 ORM是通过使用描述对象和数据库之间映射 的元数据,将应用程序中的对象自动持久化 到关系型数据库中,本质上是将数据从一种 形式转换成另外一种形式。 ORM帮助开发人员完成面向对象的程序设计 语言到关系型数据库的映射,从而实现在项 目中既保持以一种完全地面向对象的思想设 计与开发应用程序和持久化数据库,又能利 用关系型数据库的技术优势。
清华大学出版社
<!-- 数据库用户名 -->
<property name="ername">root</property> <!-- 数据库用户对应的密码 --> <property name="hibernate.connection.password">123</property> <!-- 数据库对应的方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>