### Hibernate2 入门知识点详解 #### 一、概述与背景 随着软件开发技术的不断发展,ORM(Object Relational Mapping,对象关系映射)技术逐渐成为处理数据库与应用程序间数据交互的重要手段。Hibernate作为一款优秀的ORM框架,在Java开发领域内备受青睐。尽管当前Hibernate已经发展到了更高级别的版本,但许多遗留项目仍在使用Hibernate 2,同时Hibernate 2中的很多基本概念和设计模式在后续版本中也有体现。因此,学习和理解Hibernate 2对于理解和使用新版本同样具有重要的意义。 #### 二、Hibernate2所需类库及配置 ##### 1. JDBC驱动程序 - **定义**:JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 - **获取**:对于使用MySQL的项目,需要从MySQL官方网站下载相应的JDBC驱动程序(mysql-connector-java)。 - **作用**:Hibernate底层依赖于JDBC来实现对数据库的操作,因此在使用Hibernate之前必须确保已安装并配置好JDBC驱动。 ##### 2. Hibernate核心库(hibernate2.jar) - **定义**:这是Hibernate框架的核心库,包含了实现ORM功能的主要类和接口。 - **获取**:从Hibernate官方站点下载最新稳定版本的Hibernate包,本文档中提到的版本为2.1.6。 - **作用**:提供基本的ORM功能,如实体映射、会话管理等。 ##### 3. 辅助类库 - **Dom4j**:必需。用于解析XML配置文件和映射文件。 - **CGLIB**:必需。在运行时使用该代码生成库来增强类,通常与Java反射机制联合使用。 - **CommonsCollections & CommonsLogging**:必需。提供一系列有用的工具类。 - **ODMG4**:必需。提供ODMG兼容的持久化管理接口。 - **EHCache**:必需。提供默认的二级缓存实现。 - **Log4j**:可选。用于日志记录,通过CommonsLogging API集成。 ##### 4. Java Transaction API (JTA) - **定义**:JTA是一种Java平台的标准事务处理API,提供了跨多个资源管理器的分布式事务支持。 - **获取**:需要额外下载jta.jar。 - **作用**:支持Hibernate中的事务管理。 #### 三、环境搭建与配置 - **单机环境**:将所有需要的jar文件添加到CLASSPATH中。 - **Web应用环境**:将jar文件放置在WEB-INF/lib目录下,并可以通过JNDI获取JDBC资源。 #### 四、快速入门实例 1. **创建数据库表**:使用SQL语句创建一个简单的USER表,包含用户ID、姓名、性别和年龄等字段。 ```sql CREATE TABLE USER ( user_id CHAR(32) NOT NULL PRIMARY KEY, name VARCHAR(16) NOT NULL, sex CHAR(1), age INT ); ``` 2. **配置文件**:编写Hibernate配置文件(hibernate.cfg.xml),指定数据库连接信息、方言等配置。 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/HibernateTest</property> <property name="connection.username">root</property> <property name="connection.password">password</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 其他配置项 --> </session-factory> </hibernate-configuration> ``` 3. **实体类定义**:根据数据库表结构定义对应的Java实体类(User.java)。 ```java public class User implements java.io.Serializable { private String userId; private String name; private Character sex; private Integer age; // 构造方法、getter和setter省略 } ``` 4. **映射文件**:编写映射文件(User.hbm.xml)来描述实体类与数据库表之间的映射关系。 ```xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="com.example.User" table="USER"> <id name="userId" column="user_id"> <generator class="assigned"/> </id> <property name="name" column="name"/> <property name="sex" column="sex"/> <property name="age" column="age"/> </class> </hibernate-mapping> ``` 5. **业务逻辑实现**:编写Java程序来操作实体对象,包括增删改查等操作。 ```java public class Main { public static void main(String[] args) { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); User user = new User("1", "John Doe", 'M', 30); session.save(user); tx.commit(); } catch (HibernateException e) { if (tx != null) tx.rollback(); e.printStackTrace(); } finally { session.close(); } } } ``` 通过以上步骤,我们可以完成一个简单的Hibernate 2应用程序的开发。这不仅帮助我们熟悉了Hibernate的基本使用方式,也为进一步学习更高级的功能打下了基础。
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助