Hibernate3.x调用存储过程大揭密
时间:2011-03-07 IT168 Amigo
三.编码与测试
在准备工作完成后,进入编码与测试阶段,本例演示了在hibernate3.0中调用mysql的存储过程的方法。
1、hibernate的配置文件
在hibernate的配置文件中包含数据库的连接信息,以及加入OR mapping的xml格式的映射文件,该文件如下(部分内容略):
……
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping resource="com/amigo/proc/model/User.hbm.xml"/>
……
2、OR Mapping文件
产生的OR Mapping文件有User.java以及其对应的hibernate映射文件User.hbm.xml。其中User.java的内容如下:
public class User implements java.io.Serializable {
private static final long serialVersionUID = 1L;
/** 用户id*/
private String userid;
/** 用户姓名*/
private String name;
/** 用户blog*/
private String blog;
//省略get/set方法
}
User.hbm.xml文件的内容如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.amigo.proc.model">
<class name="User" table="tbl_user">
<id name="userid" column="userid">
<generator class="assigned"/>
</id>
<property name="name" column="name" type="string" />
<property name="blog" column="blog" type="string" />
</class>
<sql-query name="getUserList" callable="true">
<return alias="user" class="User">
<return-property name="userid" column="userid"/>
<return-property name="name" column="name"/>
<return-property name="blog" column="blog" />
</return>
{call getUserList()}
</sql-query>
</hibernate-mapping>
在该文件中需注意<sql-query…></sql-query>中的这段代码,调用的存储过程在其中定义,并定义了调用存储过程后将记录组装成User对象,同时对记录的字段与对象的属性进行相关映射。
Hibernate3.xμ÷ó?′?′¢1y3ì′ó?ò?ü(2)
ê±??:2011-03-07 IT168 Amigo
3£?hibernateμ÷ó?′?′¢1y3ìμ?2aê?àà
±?ààê???àyμ?o?D?àà£??ú±?àà?D£?ò?êμày??3tμ??μ?÷á??úhibernate?Dè?o?μ÷ó?′?′¢1y3ì£?àyê?á?hibernateμ÷ó?2é?ˉ?¢?üD??¢2?è?oíé?3y?a??àà′?′¢1y3ìμ?·?·¨£ |