### Hibernate入门级别教程知识点 #### 一、Hibernate简介与实现步骤概述 - **Hibernate**: 是一个开放源码的对象关系映射框架(Object Relational Mapping, ORM),它对JDBC进行了非常轻量级的对象封装,使得Java开发人员可以使用面向对象的方式进行数据库的操作。 #### 二、实现步骤详解 1. **创建表**: - 表的设计应该考虑到与Java对象的映射关系,即Java对象的属性需要与表中的字段相对应。 - 示例SQL语句: ```sql CREATE TABLE 表名 (主键 INT PRIMARY KEY, 其他键 VARCHAR(100)); ``` 2. **设置类库**: - 需要添加以下jar包至项目的类库中: - `hibernate3.jar` - `/lib/*.jar`(通常指的是项目依赖库中的其他jar文件) - `ojdbc14.jar`(用于Oracle数据库连接) - 设置步骤: 1. 在Eclipse中,选择`Windows > Preferences > Java > Build Path > User Libraries`,然后新建一个新的库,并添加上述jar包。 2. 右键点击项目,选择`Build Path > Add Library`, 添加新创建的用户库。 3. **配置hibernate.cfg.xml文件**: - 该文件用于配置数据库的连接参数以及指定映射文件的位置。 - **基本结构**: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库连接参数 --> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url">jdbc:oracle:thin:@192.168.0.20:1521:tarena</property> <property name="connection.username">openlab</property> <property name="connection.password">open123</property> <!-- 数据库方言 --> <property name="dialect">org.hibernate.dialect.OracleDialect</property> <!-- 映射文件注册 --> <mapping resource="entity/Book.hbm.xml"/> </session-factory> </hibernate-configuration> ``` 4. **编写实体类**: - 实体类用于表示数据库中的记录,需要定义好类的属性及其对应的getter和setter方法。 - 示例实体类: ```java public class Book { private int id; private String name; private String email; // getter and setter methods public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } ``` 5. **编写映射文件**: - 映射文件用于描述实体类和数据库表之间的映射关系。 - 示例映射文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Book" table="BOOKZCQ"> <id name="id" column="ID"> <generator class="increment"/> </id> <property name="name" column="NAME"/> <property name="email" column="EMAIL"/> </class> </hibernate-mapping> ``` 6. **编写测试类**: - 测试类主要用于演示如何使用Hibernate进行基本的CRUD操作。 - 示例代码: ```java public class HibernateTest { public static void main(String[] args) { // 创建实体类对象 Book book = new Book(); book.setName("Java编程思想"); book.setEmail("book@example.com"); // 创建配置对象并加载配置文件 Configuration config = new Configuration().configure(); // 获取SessionFactory SessionFactory sf = config.buildSessionFactory(); // 打开会话 Session session = sf.openSession(); // 开始事务 Transaction ts = session.beginTransaction(); // 执行操作 session.save(book); // 提交事务 ts.commit(); // 关闭会话 session.close(); } } ``` #### 三、Hibernate的核心概念 1. **对象持久化原理**: - 对象持久化是指将内存中的对象状态保存到磁盘等持久性存储介质的过程。 - 对象持久化的主要目的是解决内存数据的易失性和安全性问题,同时提供一种高效的数据管理和查询方式。 2. **为什么需要对象持久化**: - 内存数据的易失性:断电后数据丢失。 - 安全管理与备份需求。 - 内存无法存储大量数据。 - 共享数据的需求。 - 支持复杂查询。 3. **对象持久化的方法**: - **对象序列化**: - 适用于临时或少量数据的持久化。 - **使用数据库(通过JDBC实现)**: - 功能最完备。 - 理论上效率较高。 - 开发难度较大。 - 代码量大。 - **使用EJB**: - 封装了JDBC。 - 更复杂的开发过程。 - 侵入性框架。 - 需要重量级服务器支持。 - 功能可能不够全面。 - **使用ORM框架(如Hibernate)**: - 提供了更加灵活和高效的数据库访问方式。 - 减少了代码量和开发难度。 - 支持多种数据库平台。 - 能够更好地处理对象关系映射问题。 通过以上内容的学习,我们可以了解到Hibernate的基本使用方法和核心概念,这对于后续深入学习和实际应用Hibernate是非常有帮助的。
剩余13页未读,继续阅读
- 粉丝: 1
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 可直接运行 MATLAB数学建模学习资料 模拟算法MATLAB代码实现.rar
- 基于 Java+SQLServer 实现的医药售卖系统课程设计
- HCNP(HCDP)华为认证资深网络工程师-路由交换方向培训 -IESN中文理论书-内文.pdf
- 新版FPGA课程大纲,芯片硬件开发用的大纲
- ROS2下OpenCV识别物体区域和视频捕捉的样例
- STM32-EMBPI.PDF
- Font Awesome图标字体库提供可缩放矢量图标,它可以被定制大小、颜色、阴影以及任何可以用CSS的样式
- Bluefield 2固件镜像版本,fw-MBF2M345A-VENOT-ES-Ax-24.40.1000.bin
- 雪颜奇迹幻白双重莹白焕采霜50ML-1016-FA.rar
- Qt的QDOCK高级用法源码,包含linux和windows版本,从开源库下载
评论0