疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Myeclipse实现Hibernate数据库访问


 

 
       我们需要安装了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 的持久化实现,自动生成大部分的基础代码,使我们真正从烦琐的代码编写中解放出来。现在,我们所要做的重点仅仅是考虑数据库表的构建、业务逻辑实现等核心内容,无论是开发效率或是项目质量都获得了显著的提高。