我们需要安装了Myeclipse 插件的Eclipse 3.0 开发环境、Mysql 数据库,以及相应的JDBC 驱动程序。
(1)创建一个示例数据库
这个示例数据库非常简单,仅有一张表格,表格名:t_employee,它包含两个字段:递增主键“id”和用户名“name”。
(2)创建Hibernate 配置文件
启动Myeclipse,新建一个Java Project,利用Myeclipse 添加“Hibernate capabilities”,这时,Myeclipse 会把使用Hibernate时所需的各个库添加进来,并生成hibernate.cfg.xml,它是Hibernate的配置文件,主要用于配置数据库连接以及其它各种属性。
现在,我们所要做的只是输入一些数据库连接的属性并且将JDBC 驱动包添加进来,Myeclipse 会自动帮我们生成这个文件,不需要我们手工编写。
<hibernate-configuration> <session-factory> <propertyname="myeclipse.connection.profile">hitt_mysql </property> <property name="connection.url">jdbc:mysql://localhost:3306/ test</property> <property name="connection.username">root</property> <property name="connection.password">admin</property> <property name="connection.driver_class">com.mysql. jdbc. Driver</property> <property name="dialect">org.hibernate.dialect.MySQL Dialect</ property><mapping resource="TEmployee.hbm.xml"/> </session-factory> </hibernate-configuration>
(3)创建POJO 类和Hibernate 映射文件
打开Myeclipse Database Explorer,找到我们的表t_employee。Myeclipse 可以根据选择的表的结构,自动完成对象类到数据库的映射,避免了手工编写的缺陷。这里,项目中生成了TEmployee.java 和Temployee.hbm.xml,前者是数据库表对应的POJO 类,后者则是两者之间的映射关系文件,这些也都是由Myeclipse 帮我们写好的,不需要花费太大精力。
TEmployee.java 文件:
public class TEmployee extends AbstractTEmployee implements Serializable{ public TEmployee(){ } public TEmployee(java.lang.Integer id){ super(id); } } Temployee.hbm.xml 文件: <hibernate-mapping> <class name="TEmployee" table="t_employee"> <id name="id" column="id" type="integer"> <generator class="native"/> </id> <property name="name" column="name" type="string" not-null="true" /> </class> </hibernate-mapping>
(4)持久化对象的操作
上面的步骤已经完成了Hibernate 的基础代码和配置文件的编写,还需要编写一个简单的持久化代码来测试这个实例。这里,我们以插入一个名为“Doudy”的记录为例。
Configuration config=new Configuration().configure(); SessionFactory sessionFactory=config.buildSessionFactory(); session=(sessionFactory).openSession();
这里利用默认的配置文件hibernate.cfg.xml 创建且初始化了Configuration 实例,完成了与数据库的连接,并得到了Session实例,通过它就可以完成对象持久化操作。
tran=session.beginTransaction(); TEmployee employee=new TEmployee(); employee.setName("Doudy"); session.save(employee); session.flush(); tran.commit(); Assert.assertEquals(employee.getId().intValue()>0,true);
这样我们就把TEmployee 对象实例保存到数据库中,即在数据库表中添加了一条“Doudy”的记录。
Hibernate 的持久化服务,让开发人员得以把大部分精力用在业务逻辑的实现上,而无须为数据库的连接一筹莫展,让操作数据像操作对象一样方便,可以更好地运用面向对象的思想开发;Myeclipse作为一个优秀的集成开发环境,进一步简化了Hibernate 的持久化实现,自动生成大部分的基础代码,使我们真正从烦琐的代码编写中解放出来。现在,我们所要做的重点仅仅是考虑数据库表的构建、业务逻辑实现等核心内容,无论是开发效率或是项目质量都获得了显著的提高。