目录:
1.hibernate简介
2.什么是ORM?
3.很重要的三个类
4.hibernate配置文件
******************************1.hibernate简介************************************
hibernate是一个优秀的持久层框架,它充分体现了ORM的设计理念,提供了高效的对象到关系型数据库的持久化服务。
换句话说:它就是用来操作数据库的,它内部封装了jdbc,这样做的目的就是下面要介绍的ORM。
******************************2.什么是ORM?************************************
java是面向对象的计算机语言,提倡的是面向对象的开发思想;然而关系型数据库又是应用系统开发中不可或缺的一环。这两者之间有很大的区别,
为了解决这个问题,ORM应运而生。嗯,这个词用的很到位。
ORM:Object Relational Mapping对象关系映射。它的作用就是在关系型数据库和对象之间做一个自动映射,也就是将对象类与关系型数据库表映射。
那么我们就可以以操作对象的形式来操作数据库了。
当然这样说,只是快速理解什么是ORM、什么是hibernate。至于hibernate与JDBC的对比呀等等一系列问题,留给后面吧,毕竟这是学习hibernate的,
所以现在只要明确,hibernate内部封装了JDBC,使用它我们可以像操作对象一样操作数据库就ok了。
******************************3.很重要的三个类************************************
在hibernate中有三个很重要的类:配置类(Configuration)、会话工厂类(SessionFactory)、会话类(Session)
配置类(Configuration):配置类主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时配置类会读取配置文件。
会话工厂类(SessionFactory):生产Session的工厂。它保存了当前数据库中所有的映射关系,而且它是线程安全的。它的初始化创建过程会耗费大量的系统资源。
会话类(Session):通过它来对数据库进行增、删、改、查。注意:它不是线程安全的,不要多个线程共享一个Session
******************************4.hibernate配置文件************************************
1.从官方网站可以免费获取所需jar包以及帮助文档。 http://www.hibernate.org

以上是本人开发时所用到的,我用的是mysql所以使用mysql-connector-java-5.1.7-bin.jar包,这个看自己所使用的数据库替换。
2.现在可以聊聊需要哪些配置文件、如何配置和使用Hibernate了。
hibernate的主配置文件默认命名为hibernate.cfg.xml,该配置文件默认放置在项目的classpath根目录下面。
<?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"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <!-- 一个session-factory代表一个数据库 --> <session-factory> <!-- 数据库连接参数 --> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 数据库方言,根据方言生成符合当前数据库语法的sql --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 显示sql,开发调试时使用 --> <property name="show_sql">true</property> <!-- 格式化sql --> <property name="format_sql">true</property> <!-- 是数据库连接的名字,只是作为备注或者标识的属性。 --> <property name="myeclipse.connection.profile">mysql</property> <!-- 自动建表。如果表不存在时就会新建表,若已经存在则不创建 --> <property name="hbm2ddl.auto">update</property> <!-- 映射文件,可以有多个 --> <mapping resource="com/test/Emp.hbm.xml" /> </session-factory> </hibernate-configuration>
配置文件中有详细描述,这里不再多做赘述,当然上面的只是开发中常用的一部分配置信息,具体的还有很多,可以参考你下载的源码文件中的hibernate.properties
<mapping resource="com/test/Emp.hbm.xml" />
这个就是下面要介绍的配置文件——hibernate的映射文件
hibernate的映射文件,也就是描述对象与关系型数据库之间的映射。文件命名规则xxx.hbm.xml。例如:Emp是一个持久化类,该类的映射文件命名Emp.hbm.xml
/** * 创建名称为Emp的JavaBean * * @author U6 * 2017-03-01 * hibernate持久化类的四条编程规则 * 1. 提供一个默认无参构造器 * 2. 提供一个表示属性(可选)一般是数据库中的主键 * 3. 使用非final的类(可选)。使用final类hibernate不能使用代理来延迟关联加载 * 4. 属性私有化,提供getter、setter方法 */ public class Emp { public Emp() { } private Integer id; private String name; private String add; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAdd() { return add; } public void setAdd(String add) { this.add = add; } }
<?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"> <!-- 映射文件的根元素,可选元素:schema、 package:类的包名称,如果指定了包com.test,在class中的name就只用写Emp 具体的请参照hibernate-mapping-3.0.dtd文件 --> <hibernate-mapping> <!-- name全限定类名 table与类映射的表名--> <class name="com.test.Emp" table="tb_emp"> <!-- 主键 --> <id name="id" column="id" type="int"> <generator class="native"/> </id> <!-- property常用配置属性 name:持久化类属性 column:数据库字段 type:数据库字段类型 length:数据库字段长度 not-null:数据库字段是否可以为空 unique:数据库字段是否唯一,boolean类型 lazy:是否延迟抓取 --> <property name="name" type="string" not-null="true" length="50" column="tb_name"/> <property name="add" type="string" length="255" column="tb_add"/> </class> </hibernate-mapping>
浙公网安备 33010602011771号