zoukankan      html  css  js  c++  java
  • Spring, Hibernate and Oracle Stored Procedures

    一篇英文博文,写的是利用hibernate处理存储过程中的游标等等:

    Motivation: While there are a few resources available online for calling stored procedures from Hibernate, it took me a while to stumble across one that mostly captures what I need. The intention of this blog entry is to put a similar example into my own words, to extend it slightly and hopefully to help anyone not experienced with Hibernate and Oracle to integrate Stored Procedures and Functions into an application quickly.

    Setup Oracle 10g

    For this example, we will be using Oracle 10g. We can initialize our schema user with SQLPlus with the following commands:
    sqlplus connect as sysdba
    create user my_orcl identified by my_orcl;
    grant create session to my_orcl;
    grant resource to my_orcl;
    grant create table to my_orcl;

    Setup a Project For Spring and Hibernate

    We will download spring-framework-2.5.5-with-dependencies.zip, hibernate-distribution-3.3.1.GA-dist.zip and hibernate-annotations-3.4.0.GA.zip. We can create a standard project layout of src, test and lib folders with the following jars on the classpath:

    spring-framework-2.5.5/dist/spring.jar
    spring-framework-2.5.5/dist/modules/spring-test.jar
    spring-framework-2.5.5/lib/jakarta-commons/commons-logging.jar
    spring-framework-2.5.5/lib/jakarta-commons/commons-dbcp.jar
    spring-framework-2.5.5/lib/jakarta-commons/commons-pool.jar
    spring-framework-2.5.5/lib/jakarta-commons/commons-collections.jar
    spring-framework-2.5.5/lib/dom4j/dom4j-1.6.1.jar
    spring-framework-2.5.5/lib/log4j/log4j-1.2.15.jar
    spring-framework-2.5.5/lib/slf4j/slf4j-api-1.5.0.jar
    spring-framework-2.5.5/lib/slf4j/slf4j-log4j12-1.5.0.jar
    spring-framework-2.5.5/lib/j2ee/*.jar
    hibernate-annotations-3.4.0.GA/hibernate-annotations.jar
    hibernate-annotations-3.4.0.GA/lib/hibernate-commons-annotations.jar
    hibernate-distribution-3.3.1.GA/hibernate3.jar
    hibernate-distribution-3.3.1.GA/lib/required/javassist-3.4.GA.jar
    hibernate-distribution-3.3.1.GA/lib/required/slf4j-api-1.5.2.jar

    Because we will be using Oracle Stored Procedures, we will also need a database driver such as

    oracle/product/10.2.0/db_1/jdbc/lib/ojdbc14.jar

    Create Domain Objects

    We can setup our domain using annotated Java. For these examples, we need one simple domain Object.

    package spring.hibernate.oracle.stored.procedures.domain;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;

    @Entity
    @Table(name = “AUTHOR”, schema = “MY_ORCL”)
    public class Author implements java.io.Serializable {

    private static final long serialVersionUID = 8676058601610931698L;
    private int id;
    private String firstName;
    private String lastName;

    @Id
    @Column(name = “ID”, nullable = false)
    public int getId() {
    return this.id;
    }

    public void setId(final int id) {
    this.id = id;
    }

    @Column(name = “FIRST_NAME”, nullable = false, length = 50)
    public String getFirstName() {
    return this.firstName;
    }

    public void setFirstName(final String firstName) {
    this.firstName = firstName;
    }

    @Column(name = “LAST_NAME”, nullable = false, length = 50)
    public String getLastName() {
    return this.lastName;
    }

    public void setLastName(final String lastName) {
    this.lastName = lastName;
    }
    }

    Create a DAO

    Now that we have a domain Object, we can create a DAO for a simple operation, such as looking up Authors by last name. Fortunately, Spring provides a convenient base class for DAO operations.

    package spring.hibernate.oracle.stored.procedures.dao;

    import java.util.List;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    import spring.hibernate.oracle.stored.procedures.domain.Author;

    public class AuthorDAO extends HibernateDaoSupport {

    @SuppressWarnings(“unchecked”)
    public List findByLastNameUsingHQL(final String lastName) {
    return getHibernateTemplate().find(“from Author author where author.lastName = ?”, lastName);
    }
    }

    The Spring Application Context Configuration

    The Spring applicationContext.xml can reside directly at the root of our src classpath, and it will contain information for configuring Spring to manage our Hibernate sessions, transactions and datasources, as well as our DAO.

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Redis应用场景
    GDAL读取Shp问题解决:Unable to open EPSG support file gcs.csv
    IDEA整合Mybatis+Struts2+Spring (二)--整合框架
    IDEA整合Mybatis+Struts2+Spring(一)--新建项目
    Spring中的单例模式和多例模式的应用
    java设计模式1--单例模式
    HashMap原理以及自己实现HashMap
    JQ之$.ajax()方法以及ajax跨域请求
    数据库简单操作以及多表查询操作的一些总结
    JS正则表达式学习总结
  • 原文地址:https://www.cnblogs.com/mrcharles/p/4731721.html
Copyright © 2011-2022 走看看