Heim  >  Artikel  >  Datenbank  >  HIbernate 调用Oracle存储过程

HIbernate 调用Oracle存储过程

WBOY
WBOYOriginal
2016-06-07 17:10:261362Durchsuche

1、创建存储过程 Proc代码 create or replace procedure changesalary(p_employeeid number, p_newsalary number) is be

1、创建存储过程

Proc代码

create or replace procedure changesalary(p_employeeid number, p_newsalary number) is begin update employees set salary= p_newsalary where employee_id = p_employeeid; if sql%notfound then raise_application_error(-20100,'Invalid Employee Id'); end if; end; /

2、hibernate配置

Xml代码

org.hibernate.dialect.Oracle9Dialect oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:xe hr hr update true

 3、hibernate应用

(1)使用JDBC连接

Java代码

import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class CallSP { public static void main(String[] args) throws Exception { Configuration c = new Configuration().configure(); SessionFactory sf = c.buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction(); Connection con = session.connection(); // obtain JDBC connection from Session object CallableStatement cs = con.prepareCall("{ call changesalary(?,?) }"); cs.setInt(1,100); // first parameter index start with 1 cs.setInt(2,6000); // second parameter cs.execute(); // call stored procedure session.getTransaction().commit(); session.close(); sf.close(); } }

 (2)使用Native SQL

Java代码

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn