`
handonghandong
  • 浏览: 88908 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

今天遇到了个问题,Hibernamte的存储过程

阅读更多
查了些博客和书籍,下面把我的一些在这方面的认识总结一下:
   首先存储过程在SQL-Server中我倒还是用过,至于Hibernate嘛,首先还是那种ORM思想
         建立一个表,如create table tbl_user插入一些数据后
         建立一个存储过程 create proc getStudentList
                       as
                      select * from Stu
       以下是三种常见的方法过程
       1.通过传入的参数创建用户的存储过程--createUser
DROP PROCEDURE IF EXISTS `createUser`;
CREATE PROCEDURE `createUser`(IN userid varchar(50), IN name varchar(50), IN blog varchar(50))
begin
    insert into tbl_user values(userid, name, blog);
end;

       2. 通过传入的参数更新用户信息的存储过程--updateUser
DROP PROCEDURE IF EXISTS `updateUser`;
CREATE PROCEDURE `updateUser`(IN nameValue varchar(50), IN blogValue varchar(50), IN useidValue varchar(50))
begin
    update tbl_user set name = nameValue, blog = blogValue where userid = useridValue;
end;

       3. 删除用户信息的存储过程--deleteUser
DROP PROCEDURE IF EXISTS `deleteUser`;
CREATE PROCEDURE `deleteUser`(IN useridValue int(11))
begin
    delete from tbl_user where userid = useridValue;
private String userid;


       这样表和存储过程建立完了,接下来建立关系映射文件Stu.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="getStudentList" 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 getStudentList()}
</sql-query>
</hibernate-mapping>

在<sql-query>中{call getStudentList()}</sql-query>开始调用了存储过程

下面是测试类 更新的
private void testProcUpdate(Session session) throws Exception ...{
  //更新用户信息
  Transaction tx = session.beginTransaction();
        Connection con = session.connection();
        String procedure = "{call updateUser(?, ?, ?)}";
        CallableStatement cstmt = con.prepareCall(procedure);
        cstmt.setString(1, "陈xx");
        cstmt.setString(2, "http://www.blogjava.net/sterningChen");
        cstmt.setString(3, "sterning");
        cstmt.executeUpdate();
        tx.commit();
}


   
分享到:
评论
1 楼 snoopy3384 2009-09-01  
谢谢楼主的共享,继续加油!
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    spring.net mvc hibernamte整合实例

    Spring.NET MVC 和 Hibernate 是两个流行的开源框架,它们在 .NET 开发中被广泛用于构建企业级应用程序。Spring.NET 提供了依赖注入(DI)和面向切面编程(AOP)的功能,而 Hibernate 则是针对 .NET 的一个强大的...

    Hibernamte例题源码!

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中处理数据库操作,而无需直接编写SQL语句。在这个“Hibernate例题源码!”压缩包中,我们很可能会找到一些关于如何使用Hibernate...

    北大青鸟PPT(Hibernamte)

    HIBERNATE第三章 最后一章了

    hibernamte_validator_4.3_final.zip

    Hibernate-validator是Java世界中一个强大的验证框架,它在JSR-303规范的基础上提供了丰富的注解和灵活的验证逻辑,使得开发者能够轻松地对输入数据进行验证。本文将深入探讨Hibernate-validator的核心功能、工作...

    hibernate 级联(cascade和inverse)一对多

    在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...

    struts2.3+spring4.7+hibernamte5.2集成开发环境所需jar包

    这个集成开发环境所需的jar包集合,为开发者提供了一个完整的运行环境,可以方便地进行MVC(Model-View-Controller)模式的Web应用开发。 Struts2是Apache软件基金会的一个开源项目,作为MVC框架,它负责处理HTTP...

    学生选课 struts+hiberna

    Struts和Hibernate是Java开发中两个非常重要的框架,它们在构建Web应用程序时起着关键作用。Struts是一种基于MVC(Model-View-Controller)设计模式的开源框架,主要用于控制应用程序的流程,而Hibernate则是一个...

    hibernate复合主键及关联的实现

    博文链接:https://balaschen.iteye.com/blog/155127

    spring struts hibernate中文参考手册

    《Spring Struts Hibernate中文参考手册》是一套针对Java Web开发人员的重要参考资料,...这三份文档的详细阅读和实践将为Java Web开发者打下坚实的基础,有助于他们解决开发过程中遇到的各种问题,并提升技术水平。

    hibernate jar包

    在开发过程中,使用这个“hibernate jar包”可以快速搭建Hibernate环境,只需将这些jar文件添加到项目的类路径中,然后配置相应的Hibernate配置文件(如hibernate.cfg.xml),就可以开始使用Hibernate进行持久化操作...

Global site tag (gtag.js) - Google Analytics