首先我们需要了解一个名词ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。
Hibernate在实现ORM功能的时候主要用到的文件有以下三种:
映射类(*.java):用来描述数据库中表的结构,表中的字段在对应的类中被描述成属性,这样就可以实现把表中的记录映射成为该类的对象。
例:
package com.test.bean; public class Test { private String Id; private String name; private String remark; public Test(String id, String name, String remark) { Id = id; this.name = name; this.remark = remark; } public Test() { } public String getId() { return Id; } public void setId(String id) { Id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } @Override public String toString() { return "Test{" + "Id='" + Id + '\'' + ", name='" + name + '\'' + ", remark='" + remark + '\'' + '}'; } }
对应的表如下图:
映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等等。上述类对应的映射文件如下:
<?xml version="1.0" encoding="utf-8"?> <!-- ~ Hibernate, Relational Persistence for Idiomatic Java ~ ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later. ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. --> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.test.bean"> <class name="Test" table="test"> <id name="id"> <!--主键自增策略--> <!-- <generator class="native"></generator> --> </id> <property name="name"/> <property name="remark"/> </class> </hibernate-mapping>
数据库配置文件(*.properties/*.cfg.xml):它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。
<?xml version="1.0" encoding="utf-8" ?> <!-- ~ Hibernate, Relational Persistence for Idiomatic Java ~ ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later. ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. --> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate