技术开发 频道

Hibernate调用mysql5.0存储过程小记

【IT168 技术专栏】

  准备工作:

  1.hibernate3

  到这下载hibernate3:http://sourceforge.net/project/showfiles.phpgroup_id=40712&package_id=
127784&release_id=403223

  2.mysql (注意一定要用mysql5.0和最新驱动)
 
  mysql官方网站http://www.mysql.com/

 
  过程:

  1.建张表

CREATE TABLE `proctest` ( `id` int ( 11 ) NOT NULL auto_increment, `Name` varchar ( 20 ) default '''''' , `age` int ( 11 ) default NULL , `address` varchar ( 50 ) default '' , PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = gb2312;

  2.插入几条记录

INSERT INTO `proctest` VALUES ( 1 , ' tom ' , 22 , 'http://www.blogjava.net ' ); INSERT INTO `proctest` VALUES ( 2 , ' wujun ' , 25 , 'http://www.blogjava.net/wujun ' ); INSERT INTO `proctest` VALUES ( 3 , ' jerry ' , 30 , ' 深圳 ' ); INSERT INTO `proctest` VALUES ( 4 , ' wujun ' , 40 , ' 南昌 ' );

  3.创建存储过程
 
  -- 这只是一个例子,就来个简单存储过程

create PROCEDURE testProc() begin select * from proctest; end ;

  打开eclipce新建个java工程,记得把hiberbate3类库也一起加进去。

  看下结构图:

  新建UserVO.java文件

package net.wj.proc.vo; public class UserVO { private int id; private String name; private int age; private String address; public UserVO() {}


  顺便把它相对应的配置文件也写上。

  UserVO.hbm.xml 

<?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" > <!-- DO NOT EDIT: This is a generated file that is synchronized --> <!-- by MyEclipse Hibernate tool integration. --> <!-- Created Sat Apr 22 17:08:56 CST 2006 --> <hibernate-mapping> <class name="net.wj.proc.vo.UserVO" table="proctest"> <id name="id" column="id"> <generator class="native"/> </id> <property name="name" column="name" type="string" /> <property name="age" column="age" type="integer" /> <property name="address" column="address" type="string" /> </class> <!--sql查询--> <sql-query name="select"> <![CDATA[select {usr.*} from proctest usr ]]> <return alias="usr" class="net.wj.proc.vo.UserVO" /> </sql-query> <!--调用存储过程就在这里配了--> <sql-query name="getUser" callable="true"> <return alias="user" class="net.wj.proc.vo.UserVO"> <return-property name="id" column="id" /> <return-property name="name" column="name" /> <return-property name="age" column="age" /> <return-property name="address" column="address" /> </return> <!--这里就是我们刚刚创建的存储过程名--> {call testProc()} </sql-query> </hibernate-mapping>

0
相关文章