首先说说什么是hibernate,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
在hibernate中我们主要关注几个基础文件,我使用的是oracle数据库,定义的数据库表为EntityUsers。我们新建EntityUsers.java对象、EntityUsers.hbm.xml的XML文件、hibernate.cfg.xml的XML文件和EntityUsersManage.java对象。
hibernate.cfg.xml文件是我们在和数据库表关联是的xml配置文件,里面主要是数据库连接时的一些内容,具体如下:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.1.80:1521:demo</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.username">bizbeyond</property>
<property name="hibernate.connection.password">bizbeyond</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle8iDialect</property>
<property name="show_sql">true</property>
<mapping resource=".\com\hibernate3\EjbUsers.hbm.xml"/>
<mapping resource=".\com\hibernate3\EjbText.hbm.xml"/>
</session-factory>
</hibernate-configuration>
EntityUsers.java文件是数据库表在程序中对应的实体类,这里注意:对象名称要和数据库表明一致,对象里面的属性和属性和类型都要和数据库里面的字段一致。这样做的目的是让实地数据库表能够对象化的基础。针对我测试项目的表而言,我的实体类是下面这样子的:
package com.hibernate3;
public class EntityUsers {
private int id;
private String name;
private int age;
public void setid(int id)
{this.id = id;}
public int getid()
{return this.id;}
public void setname(String name)
{this.name = name;}
public String getname()
{return this.name;}
public void setage(int age)
{this.age = age;}
public int getage()
{return this.age;}
}
EntityUsers.hbm.xml文件是我们在数据库上映射文件,主要的目的就是让我们的数据库表能够映射到对象上,用专业的点词语是ORM——(ORM的全称是Object Relational Mapping,即对象关系映射)。内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-
<hibernate-mapping>
<class name="com.hibernate3.EntityUsers" table="BIZBEYOND.ENTITYUSERS">
<id name="id" column="ID" type="java.lang.Integer"></id>
<property name="name" column="NAME" type="java.lang.String"/>
<property name="age" column="AGE" type="java.lang.Integer"/>
</class>
</hibernate-mapping>
最后是EntityUsersManage.java对象,就是操作和管理EntityUsers.java的对象,不过我在这里有两种不同的见解,喜欢的朋友都是可以试试,一个就是像现在这样,实体类和实体类的处理分来。还有只用就是就是用一个类来继承实体类对象,新类的属性是表字段,方法就是表字段的控制。 EntityUsersManage.java对象如下:
package com.hibernate3;
import java.util.List;
import java.util.Properties;
import javax.jms.QueueConnectionFactory;
import javax.naming.InitialContext;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
{
public void Add(EntityUsers entityUser)
{
try
{
Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
session.save(entityUser);
tx.commit();
session.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
在上面我们使用了简单的四个基础文件,完成了hibernate的表映射,表字段的映射和表管理对象,是不是很简单呢?有关显示的层面