什么是Hibernate?
Hibernate本身的中文含义是:冬眠,主要是操作持久层的。直接与数据库的操作有关。
像之前的所有程序,都需要用户手工编写数据库的JDBC操作代码,程序根本就没有可移植性,因为各个数据库的SQL语句实现是有区别的,主要以分页。
Hibernate本身提供了一组ORM工具,ORMapping指的是对象-关系映射,即:以对象的方式去操作数据库,执行CRUD命令。简化了数据库的操作代码。
在Hibernate中主要是以POJO(VO)来表示数据库表中的每条记录的。程序通过POJO的操作完成具体数据库的CRUD。
在Hibernate程序中可以向各个数据库间任意的进行移植,而不需要编写任何的多余代码。
3.2、开发Hibernate
直接使用MyEclipse进行开发,但是在开发之前需要先进行数据库的配置。
3.2.1、准备工作
为了方便的开发,现在建立一个web项目,此项目中可以直接把所有的*.jar文件拷贝到WEB-INF/lib目录之中。
项目名称:HibernateProject
项目建立完成之后,配置数据库连接。
窗口 视图 其他 数据库浏览器
此时,就在eclipse中将数据库连接就配置完成了,以后可以直接通过此连接创建Hibernate应用。
数据库创建脚本:
DROP DATABASE demo ;
CREATE DATABASE demo ;
USE demo ;
DROP TABLE person ;
CREATE TABLE person(
pid INT AUTO_INCREMENT PRIMARY KEY ,
name VARCHAR(50) NOT NULL ,
age INT NOT NULL ,
birthday DATE NOT NULL
) ;
3.2.2、添加Hibernate支持
Hibernate本身也是一组*.jar文件包,所以在添加时一定要将其选择,把所有的库文件拷贝到WEB-INF/lib目录之中,如果不拷贝,则以后就需要单独进行手工的配置了。
之后提示:要创建一个文件:hibernate.cfg.xml,此文件为hibernate的核心配置文件,主要用于配置数据库连接的。
此处提示,使用的数据库是那一个,在此时,选择之前配置好的mysql的数据库连接即可,会自动将用户名、密码之类的信息全部填充完整。
下面需要创建一个映射文件,此文件用于将表与POJO之间进行连接,即:程序中通过此配置文件,找到一张表对应的POJO类,此文件的后缀为:“*.hbm.xml”。
要想创建POJO类还有*.hbm.xml文件,直接从之前配置好的数据库连接处就可以直接创建了。
此处,表示选择pojo类所在的包,以及自动生成*.hbm.xml的配置文件,此文件与POJO必须放在同一个文件夹之中。
在每一个配置文件之中,都必须指定一个主键的生成方式,现在的方式是自动增长的,所以选择native方式即可。
在MyEclipse 5.5之后选择下一步的时候会重复要求配置主键的生成方式。
配置文件:Person.hbm.xml
• 格式:表名称.hbm.xml
<hibernate-mapping>
<class name="org.lxh.hibernate.demo01.Person" 对应的POJO的包.类名称
table="person" 此POJO对应的表名称
catalog="demo"> 数据库的模式,可以删除
<id name="pid" type="java.lang.Integer"> 主键、使用pid属性
<column name="pid" /> 此属性对应的表中的列
<generator class="native"></generator> 属性的生成方式,自动增长
</id>
<property name="name" type="java.lang.String"> POJO类中的属性名称及类型
<column name="name" length="50" not-null="true" /> 对应的列的信息
</property>
<property name="age" type="java.lang.Integer">
<column name="age" not-null="true" />
</property>
<property name="birthday" type="java.util.Date">
<column name="birthday" length="10" not-null="true" />
</property>
</class>
</hibernate-mapping>
配置文件:hibernate.cfg.xml
<hibernate-configuration> 表示配置,通过配置可以找到SessionFactory
<session-factory> 连接工厂
<property name="connection.username">root</property> 用户名
<property name="connection.url"> 连接地址
jdbc:mysql://localhost:3306/demo
</property>
<property name="dialect"> 方言,以后更换数据库,直接更换方言即可
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">mysql</property>
<property name="connection.password">mysqladmin</property> 密码
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver 驱动程序
</property>
<mapping resource="org/lxh/hibernate/demo01/Person.hbm.xml" /> *.hbm
</session-factory>
</hibernate-configuration>
所有的*.hbm.xml文件,如果要起作用,则必须在hibernate.cfg.xml中进行配置操作。
分享到:
相关推荐
Hibernate 一级缓存和二级缓存的区别
【标题】"Hibernate 一个项目实列"涉及的是Java领域中的持久化框架Hibernate的应用实践,主要涵盖的内容有数据的插入、添加以及查询操作,并且在实际项目中涉及到多表的操作。这个实例是针对初学者或者想要深入理解...
hibernate 一对多和多对一的理解 自己的个人看法 大家也来看看
hibernate一对一关系映射,我们需要学习的内容包括知识点
struts2+hibernate一周小项目总结
hibernate一对多关系的增删查改 修改有点小问题
hibernate一对多单项映射示例
hibernate 一级缓存、 持久化对象状态和转换、 多表映射操作
hibernate一对多双项自身关联关系示例 带数据库ddl
【hibernate动态分表】是一种数据库设计策略,主要用于处理大数据量的问题,通过将数据分散到多个物理表中,以实现水平扩展,提高查询效率,减轻单表的压力。在Java Web开发中,Hibernate作为一款流行的ORM(对象...
用以介绍hibernate 框架的缓存机制
这是一对一双向主键共享方式的映射例子,可以参考一下。
**标题解析:**“hibernate的第一个例子”表明这是一个关于Hibernate框架的基础教程,主要目标是展示如何使用Hibernate进行数据持久化操作。 **描述分析:**描述提到这是一个超级简单的例子,包含一个持久化对象...
【标题】:“Hibernate一对一实例” 在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作。在这个“Hibernate一对一实例”中,我们将深入探讨如何使用Hibernate来实现对象与...
Hibernate从入门到精通(六)一对一双向关联映射 - 赵帅 廊坊师范学院信息技术提高班
《Hibernate入门:初识与实践》 ...总之,"hibernate第一个hibernate"项目是一个绝佳的起点,它将引导你了解并掌握Hibernate的基本概念和操作。通过实践,你可以逐步熟悉ORM思想,为后续的Java开发奠定坚实的基础。
Hibernate是一个流行的开源对象关系映射(ORM)工具,用于简化Java应用程序与数据库之间的交互。这套课件可能包含了Hibernate的基础概念、配置、实体映射、会话管理、查询语言(HQL)、 Criteria API、事务处理以及...
【hibernate第一个例子】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本示例将引导初学者了解如何使用Hibernate进行简单的数据库连接和操作。 首先,我们需要...
Hibernate一对一数据关联 Hibernate下的多对多关系 Hibernate关系映射 Hibernate继承关系映射 Hibernate映射类型-主键生成器-核心API Hibernate3 插件Eclipse配置
Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等信息。 配置 Hibernate 连接...