您的位置:首页 > 其它

Hibernate 初识

2006-12-25 13:19 239 查看
在Struts学完模型后,本来是想做一个例子的,但已经发现要与Hibernate联系起来了。于是今天 新增了Hibernate分类。好了,废话不多说,进入主题!
Hibernate是对象模型与关系数据库模型之间的桥梁!Hibernate位于软件应用的持久化层,它应用了ORM机制,对象关系映射!随着软件规模的不断增大,软件的体系结构逐渐由向多层体系发展,现在一般的公司在招聘程序员的时候都要求有多层开发经验!那么我们先来看看分层体系的发展<?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">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="fengyan.struts.form.UserForm" table="testHibernate">
<id name="userName" type="java.lang.String"><!--UserForm属性userName,是主键-->
<column name="userName" length="20" /><!--对应的表中字段名userName-->
<generator class="assigned" /><!--主键类型为自然,即通过程序赋主键值-->
</id>
<property name="userPwd" type="java.lang.String"><!--持久化类普通属性userPwd-->
<column name="userPwd" length="20" /><!--对应表中userPwd字段-->
</property>
</class>
</hibernate-mapping>

补充说明:<class name="fengyan.struts.form.UserForm" table="testHibernate"> name为我们的持久化类,table即为数据库中对应的表名!

Step5:将 该文件在Hibernate配置文件中注册,hibernate.cfg.xml代码如下

<?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>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="connection.url">
jdbc:sqlserver://127.0.0.1:1434;databaseName=study
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">
MySqlServer2005
</property>
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="show_sql">true</property>
<mapping resource="fengyan/struts/form/UserForm.hbm.xml" />

</session-factory>
</hibernate-configuration>

可以看到里面是数据库的连接信息!我本机使用的数据库是SQLServer2005,如果使用其它数据库,如MYSQL,ORACLE等则对应的代码有所不同,Hibernate最终连接数据库的方式依然是JDBC,只是Hibernate将JDBC重新封装了!
一切准备就绪,我们在actionBean中修改execute方法即可验证!修改后的execute方法代码如下:

public ActionForward execute(ActionMapping mapping, ActionForm form,

最后运行user.jsp输入用户名和密码即可将该用户添加到数据库中!整个过程我们可以发现,程序中是没有SQL语句的!这样才实现真正意义上的面向对象的编程,脱离了繁锁的SQL语句,将注意力集中在业务逻辑的处理上!
还有一点就是大家发现我并没有用到先前生动生成的HibernateSessionFactory.java。而是在execute中新写的,这样人帮,一是为了大家看的清楚,再一点就是二者不在同一包下,我也懒得引入!就一个方法简单的演示了!实际中还是应该分开的!就像以前JDBC的编程中,我们专门要写一个DBCon类是一样的!
好了就先写到这,下午还有事!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: