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

java 程序调用Oracle Function

 
阅读更多

本文出自 “古道西风 ” 博客,请务必保留此出处http://hzw2312.blog.51cto.com/2590340/748363

    package com.boxun.crm.util;   
       
    import java.sql.CallableStatement;   
       
    import java.sql.ResultSet;   
    import java.sql.ResultSetMetaData;   
    import java.sql.SQLException;   
    import java.sql.Statement;   
    import java.util.ArrayList;   
    import java.util.HashMap;   
    import java.util.List;   
    import java.util.Map;   
    import org.hibernate.HibernateException;   
    import org.hibernate.Query;   
    import org.hibernate.Session;   
    import org.hibernate.SessionFactory;   
    import org.hibernate.Transaction;   
    import org.hibernate.cfg.Configuration;   
       
    public class DAOUtil {   
           
        private static DAOUtil instance = null;   
        private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";   
        private static final ThreadLocal threadLocal = new ThreadLocal();   
        private static final Configuration cfg = new Configuration();   
        private static SessionFactory sessionFactory = null;   
           
           
        public synchronized static DAOUtil getInstance()   
        {   
            if (instance == null) {   
                instance = new DAOUtil();   
                try {   
                    cfg.configure(CONFIG_FILE_LOCATION);   
                    sessionFactory = cfg.buildSessionFactory();   
                } catch (HibernateException e) {   
                    e.printStackTrace();   
                }   
            }   
            return instance;           
        }   
           
        public Session getSession() {   
            Session session = (Session) threadLocal.get();   
            try {   
                if ((session == null) || (!session.isOpen())) {   
                    session = sessionFactory.openSession();   
                    threadLocal.set(session);   
                }   
            } catch (HibernateException e) {   
                e.printStackTrace();   
            }   
            return session;   
        }   
       
        public void closeSession() {   
            Session session = (Session) threadLocal.get();   
            threadLocal.set(null);   
            if ((session != null) && (session.isOpen())) {   
                session.flush();   
                session.close();   
            }   
        }   
       
        private String getSqlStr(String fname, int size) {   
            StringBuffer sql = new StringBuffer();   
            //String call="{? call pro(?,?,?)}";   
            sql.append("{ ? = call ");   
            sql.append(fname);   
            sql.append("(");   
            for (int i = 0; i < size; i++) {   
                sql.append("?");   
                if (i < size - 1) {   
                    sql.append(",");   
                }   
            }   
            sql.append(") }");   
       
            return sql.toString();   
        }   
       
        private String formatSqlStr(String sql, ArrayList params) {   
            if ((params == null) || (params.size() == 0))   
                return sql;   
            for (int i = 0; i < params.size(); i++) {   
                sql = sql.replaceFirst("//?", String.valueOf(params.get(i)));   
            }   
            return sql;   
        }   
           
        @SuppressWarnings("deprecation")   
        public int executeByFun(Session session, String fname, List params)   
                throws HibernateException, SQLException {   
            String sql = getSqlStr(fname, params.size());   
            int rval = -100;   
            try {   
                if (session.isConnected()) {   
                    CallableStatement call = session.connection().prepareCall(sql);   
                    call.registerOutParameter(1, 4);   
                    int i = 0;   
                    for (int j = 2; i < params.size(); j++) {   
                        call.setObject(j, params.get(i));   
                        i++;   
                    }   
       
                    if (!call.execute()) {   
                        rval = call.getInt(1);   
                    }   
                    call.close();   
                }   
            } catch (Exception ex) {   
                ex.printStackTrace();   
            }   
            return rval;   
        }   
           
        public int executeByFun(String fname, List params)   
                throws HibernateException, SQLException {   
            String sql = getSqlStr(fname, params.size());   
            int rval = -100;   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    CallableStatement call = session.connection().prepareCall(sql);   
                    call.registerOutParameter(1, 4);   
                    int i = 0;   
                    for (int j = 2; i < params.size(); j++) {   
                        call.setObject(j, params.get(i));   
                        i++;   
                    }   
       
                    if (!call.execute()) {   
                        rval = call.getInt(1);   
                    }   
                    call.close();   
                }   
            } finally {   
                closeSession();   
            }   
            return rval;   
        }   
       
        public double executeByFunDouble(String fname, ArrayList params)   
                throws HibernateException, SQLException {   
            String sql = getSqlStr(fname, params.size());   
            double rval = -100.0D;   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    CallableStatement call = session.connection().prepareCall(sql);   
                    call.registerOutParameter(1, 8);   
                    int i = 0;   
                    for (int j = 2; i < params.size(); j++) {   
                        call.setObject(j, params.get(i));   
       
                        i++;   
                    }   
       
                    if (!call.execute()) {   
                        rval = call.getDouble(1);   
                    }   
                    call.close();   
                }   
            } finally {   
                closeSession();   
            }   
            return rval;   
        }   
       
        public int executeBySql(String sql, ArrayList params)   
                throws HibernateException, SQLException {   
            Transaction tran = null;   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    Query query = session.createSQLQuery(sql);   
                    for (int i = 0; i < params.size(); i++)   
                        query.setParameter(i, params.get(i));   
                    tran = session.beginTransaction();   
                    int rval = query.executeUpdate();   
                    tran.commit();   
                    return rval > 0 ? 0 : -100;   
                }   
            } finally {   
                closeSession();   
            }   
            return -100;   
        }   
       
        public double executeBySqlDouble(String sql, ArrayList params)   
                throws HibernateException, SQLException {   
            Transaction tran = null;   
            double rval = 0.0D;   
            List list = null;   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    Query query = session.createSQLQuery(sql);   
                    for (int i = 0; i < params.size(); i++)   
                        query.setParameter(i, params.get(i));   
                    tran = session.beginTransaction();   
                    list = query.list();   
                    if (list != null && list.size() > 0) {   
                        rval = Double.parseDouble(list.get(0)==null ? 0.0 + ""   
                                : list.get(0) + "");   
                    }   
                    tran.commit();   
                }   
            } finally {   
                closeSession();   
            }   
            return rval;   
        }   
       
        public List getResultByFun(String fname, ArrayList params)   
                throws HibernateException, SQLException {   
            String sql = getSqlStr(fname, params.size());   
            List result = null;   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    System.out.println(session.connection().prepareCall(sql));   
                    CallableStatement call = session.connection().prepareCall(sql);   
                    call.registerOutParameter(1, -10);   
       
                    for (int i = 0, j = 2; i < params.size(); j++) {   
                        call.setObject(j, params.get(i));   
       
                        i++;   
                    }   
       
                    if (!call.execute()) {   
                        ResultSet rs = (ResultSet) call.getObject(1);   
                        ResultSetMetaData rsmd = rs.getMetaData();   
                        String[] colname = new String[rsmd.getColumnCount()];   
                        for (int j = 1, i = 0; i < colname.length; j++) {   
                            colname[i] = rsmd.getColumnName(j);   
                            i++;   
                        }   
                        result = new ArrayList();   
                        while (rs.next()) {   
                            Map row = new HashMap();   
                            for (int i = 0; i < colname.length; i++)   
                                row.put(colname[i], rs.getObject(colname[i]));   
                            result.add(row);   
                        }   
                        rs.close();   
                    }   
                    call.close();   
                }   
            } finally {   
                closeSession();   
            }   
       
            return result;   
        }   
       
        public String getResultByFunString(String fname, ArrayList params)   
                throws HibernateException, SQLException {   
            String sql = getSqlStr(fname, params.size());   
            String str = "";   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    CallableStatement call = session.connection().prepareCall(sql);   
                    call.registerOutParameter(1, 12);   
       
                    for (int i = 0, j = 2; i < params.size(); j++) {   
                        call.setObject(j, params.get(i));   
                        i++;   
                    }   
                    if (!call.execute()) {   
                        str = String.valueOf(call.getObject(1));   
                    }   
                    call.close();   
                }   
            } finally {   
                closeSession();   
            }   
       
            return str;   
        }   
       
        public List getResultBySql(String sql, ArrayList params)   
                throws HibernateException, SQLException {   
            List result = null;   
            sql = formatSqlStr(sql, params);   
            try {   
                Session session = DAOUtil.getInstance().getSession();   
                if (session.isConnected()) {   
                    Statement stat = session.connection().createStatement();   
                    ResultSet rs = stat.executeQuery(sql);   
                    ResultSetMetaData rsmd = rs.getMetaData();   
                    String[] colname = new String[rsmd.getColumnCount()];   
                    for (int j = 1, i = 0; i < colname.length; j++) {   
                        colname[i] = rsmd.getColumnName(j);   
                        i++;   
                    }   
       
                    result = new ArrayList();   
                    while (rs.next()) {   
                        Map row = new HashMap();   
                        for (int i = 0; i < colname.length; i++)   
                            row.put(colname[i], rs.getObject(colname[i]));   
                        result.add(row);   
                    }   
                    rs.close();   
                    stat.close();   
                }   
            } finally {   
                closeSession();   
            }   
            return result;   
        }   
    } 

应用程序调用Function:

    /**添加参数**/   
    ArrayList<Object> params = new ArrayList<Object>();   
    if((null !=wer_1 && ""!=wer_1)&&(null !=wer_2 && ""!=wer_2))   
    {       
        /**  
         * 古道西风  
         * 2011-05-23  
         */   
        params.add(tbmeetmgr.getStoptime()); //会议开会日期   
        params.add(tbmeetmgr.getStarttime()); //会议开始时间   
        params.add(tbmeetmgr.getEndtime());//会议结束时间   
        params.add(ecId);//集团编号   
        if(tbmeetmgr.getXunhuairiqi() == null){   
            params.add(0); //循环日期   
        }else{   
            params.add(tbmeetmgr.getXunhuairiqi()); //循环日期   
        }   
        if(tbmeetmgr.getXunhuaimoshi() == null){   
            params.add(0); //循环模式   
        }else{   
            params.add(tbmeetmgr.getXunhuaimoshi()); //循环模式   
        }   
        params.add(tbmeetmgr.getHuiyimoshi()); //会议模式   
    }   
       
    //List<Object> list_Sel_RoomInfo=daoSql.find(sql, params); //原程序代码   
       
    List<Object> list_Sel_RoomInfo = new ArrayList<Object>();;   
    try {   
        list_Sel_RoomInfo = com.boxun.crm.util.DAOUtil.getInstance().getResultByFun   
                ("FUN_tbmeetmgrInfo.pro_sel_tbmeetmgrinfo", params);   
    } catch (HibernateException e) {   
        e.printStackTrace();   
    } catch (SQLException e) {   
        e.printStackTrace();   
    }   
    if(null !=list_Sel_RoomInfo && list_Sel_RoomInfo.size()>0)   
    {   
        list_room_info=new ArrayList<Tbmeetroom>();   
        for(int i=0;i<list_Sel_RoomInfo.size();i++)   
        {   
             Map map=(HashMap)list_Sel_RoomInfo.get(i);   
             Tbmeetroom tbmeetroom=new Tbmeetroom();   
             tbmeetroom.setId(new Long(map.get("ID").toString()));   
             tbmeetroom.setName(new String(map.get("NAME").toString()));   
             list_room_info.add(tbmeetroom);   
        }   
        return list_room_info;             
    }  

Oracle Packages(相当于java中的接口):

    CREATE OR REPLACE PACKAGE FUN_tbmeetmgrInfo IS   
           FUNCTION pro_Sel_tbmeetmgrInfo(v_stoptime varchar2,   
                                          v_strtime varchar2,   
                                          v_endtime varchar2,   
                                          v_ecid number,   
                                          v_xunhuairiqi varchar2,   
                                          v_xunhuaimoshi number,   
                                          v_huiyimoshi number)   
                                          return sys_refcursor;   
    END FUN_tbmeetmgrInfo; 

Oracle Package bodies(相当于java中的实现类):

    CREATE OR REPLACE PACKAGE BODY FUN_tbmeetmgrInfo IS   
           FUNCTION pro_Sel_tbmeetmgrInfo(v_stoptime varchar2,   
                                          v_strtime varchar2,   
                                          v_endtime varchar2,   
                                          v_ecid number,   
                                          v_xunhuairiqi varchar2,   
                                          v_xunhuaimoshi number,   
                                          v_huiyimoshi number)   
                                          return sys_refcursor IS   
                                   TYPE c_time IS REF CURSOR;  --创建游离标记   
              vrec c_time;   
              varInt number;   
              strOverSql varchar2(30);     
              v_months number;   
              out_room sys_refcursor;   
      begin   
        delete timeinfo where 11=1;    
        commit;   
         
        --v_Result.extend;  --赋值前、必须加上   
        --一次性会议   
        if v_huiyimoshi = 1 then   
           open out_room for select id, name from Tbmeetroom  where id in (select id from Tbmeetroom where status = 0    
           and id not in    
           (select huiyishi from tbmeetmgrinfo where to_date(v_strtime,'hh24:mi') between to_date(starttime,'hh24:mi')    
           and to_date(endtime,'hh24:mi')  and to_date(stoptime,'yyyy-MM-dd') = to_date(v_stoptime,'yyyy-MM-dd')    
           and ecid = v_ecid or to_date(v_endtime,'hh24:mi') between to_date(starttime,'hh24:mi')    
           and to_date(endtime,'hh24:mi')  and to_date(stoptime,'yyyy-MM-dd') = to_date(v_stoptime,'yyyy-MM-dd') and ecid = v_ecid )    
           and id not in    
           (select meetroomid from Tbmeetroomlock where to_date(v_stoptime||' '||v_strtime,'yyyy-mm-dd hh24:mi')     
           between to_date(lockstarttime,'yyyy-mm-dd hh24:mi') and to_date(lockendtime,'yyyy-mm-dd hh24:mi')    
           or to_date(v_stoptime||' '||v_endtime,'yyyy-mm-dd hh24:mi')  between to_date(lockstarttime,'yyyy-mm-dd hh24:mi')    
           and to_date(lockendtime,'yyyy-mm-dd hh24:mi')));   
        end if;   
           
       ------------------------------------------------------------------------------------------   
        if v_huiyimoshi = 2 then   
          --单周会议   
          if v_xunhuaimoshi = 1 then   
                select ceil(( to_date(v_stoptime,'yyyy-mm-dd') - next_day(to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-1, ceil(substr(v_xunhuairiqi,3)))+1  )/7) into varInt from dual;   
                      OPEN vrec for SELECT to_char(next_day(to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-1,   
                      ceil(substr(v_xunhuairiqi,3)))+1+(rownum-1)*7 , 'yyyy-MM-dd')   
                      from dual connect by rownum<=varInt ;     
                        LOOP     
                          FETCH vrec INTO strOverSql;     
                          exit when vrec%notfound;   
                          dbms_output.put_line('StopTime'||strOverSql);   
                           insert into timeInfo values(strOverSql);   
                           commit;   
                        end loop;   
                        
          end if;   
             
          --每月   
          if v_xunhuaimoshi = 3 then   
          select ceil(months_between(to_date(v_stoptime,'yyyy-mm-dd'),   
                           to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'))) into varInt from dual;   
               OPEN vrec for SELECT to_char(add_months(to_date((substr(to_char(sysdate,'yyyy-mm-dd'),1,8))||(substr(v_xunhuairiqi,3,4)),'yyyy-mm-dd'),+(rownum-1)), 'yyyy-mm-dd')   
                  from dual connect by rownum<= ceil(varInt) ;   
                     LOOP     
                      FETCH vrec INTO strOverSql;     
                      exit when vrec%notfound;   
                       dbms_output.put_line('StopTime'||strOverSql);   
                           insert into timeInfo values(strOverSql);   
                           commit;   
                     end loop;               
                    
          end if;   
             
             
          --每季度   
          if v_xunhuaimoshi = 4 then   
          select ceil((to_date(v_stoptime,'yyyy-mm-dd')-to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'))/90)   
                     into varInt from dual;   
          v_months := gettimebytime(ceil(substr(substr(v_xunhuairiqi,3,5),0,1)));   
          dbms_output.put_line('v_months:'||v_months);   
               OPEN vrec for SELECT to_char(add_months(to_date((substr(to_char(sysdate,'yyyy-mm-dd'),1,5))||v_months||'-'||substr(v_xunhuairiqi,5,7),'yyyy-MM-dd'),+(rownum-1)*3), 'yyyy-mm-dd')   
                  from dual connect by rownum<= ceil(varInt);   
                     LOOP     
                      FETCH vrec INTO strOverSql;    
                      exit when vrec%notfound;   
                       dbms_output.put_line('StopTime'||strOverSql);   
                           insert into timeInfo values(strOverSql);   
                           commit;   
                     end loop;               
                    
          end if;   
          -----------------------------------------------------------------------------------------------   
                         
                         
           open out_room for select id, name from Tbmeetroom  where id in (select id from Tbmeetroom where status = 0    
           and id not in    
           (select huiyishi from tbmeetmgrinfo,timeinfo where to_date(v_strtime,'hh24:mi') between to_date(starttime,'hh24:mi')    
           and to_date(endtime,'hh24:mi')  and to_date(stoptime,'yyyy-MM-dd') = to_date(timeinfo.t_stoptime,'yyyy-MM-dd')    
           and ecid = v_ecid or to_date(v_endtime,'hh24:mi') between to_date(starttime,'hh24:mi')    
           and to_date(endtime,'hh24:mi')  and to_date(stoptime,'yyyy-MM-dd') = to_date(timeinfo.t_stoptime,'yyyy-MM-dd') and ecid = v_ecid )    
           and id not in    
           (select meetroomid from Tbmeetroomlock,timeinfo where to_date(timeinfo.t_stoptime||' '||v_strtime,'yyyy-mm-dd hh24:mi')     
           between to_date(lockstarttime,'yyyy-mm-dd hh24:mi') and to_date(lockendtime,'yyyy-mm-dd hh24:mi')    
           or to_date(timeinfo.t_stoptime||' '||v_endtime,'yyyy-mm-dd hh24:mi')  between to_date(lockstarttime,'yyyy-mm-dd hh24:mi')    
           and to_date(lockendtime,'yyyy-mm-dd hh24:mi')));   
                        
             
          ------------------------------------------------------------------------------------------   
             
         end if;    
         RETURN out_room;   
         END pro_Sel_tbmeetmgrInfo;   
                                             
    END FUN_tbmeetmgrInfo;  
 
分享到:
评论

相关推荐

    java调用oracle存储过程或者函数

    以上就是Java调用Oracle存储过程或函数的主要知识点,实践中要根据具体情况进行适当的调整和优化。在处理过程中,参考Oracle的JDBC文档和官方示例,以及Java API文档,将有助于理解和解决问题。

    Java调用Oracle的过程和函数

    ### Java调用Oracle的过程和函数 在现代软件开发过程中,Java与Oracle数据库的结合非常常见。为了更好地管理和处理数据,通常需要在Java程序中调用Oracle数据库中的存储过程或函数。本文将详细介绍如何通过Java来...

    Java调用oracle函数返回oracle类(类似)集合

    3. **Java调用Oracle函数**: 在Java中,你需要使用Oracle的JDBC驱动(ojdbc.jar和nls_charset12.jar)来与Oracle数据库交互。首先,你需要加载Oracle驱动并建立数据库连接。然后,你可以通过`CallableStatement`来...

    hibernate query调用oracle存储过程

    本篇文章将深入探讨如何使用Hibernate的Query接口来调用Oracle的存储过程和函数,以及提供相关的示例代码和数据库文件。 首先,让我们了解什么是存储过程和函数。存储过程是预编译的SQL语句集合,可以接受参数、...

    Java调用Oracle的过程和函数.doc

    以上是Java调用Oracle数据库过程和函数的基本步骤和关键知识点。实际应用中,可能还需要考虑事务管理、性能优化(如批处理)、连接池等高级主题。理解这些概念和操作对于开发高效、可靠的Java数据库应用至关重要。

    Oracle调用Java代码过程

    Oracle调用Java代码过程是一种将Java程序集成到Oracle数据库中的技术,主要应用于处理特定的业务逻辑,例如在本例中,是为了访问异构数据库(如DB2)的数据。以下是详细的步骤和注意事项: **步骤一:加载JDBC驱动*...

    hibernate 调用oracle函数

    本文将深入探讨如何在Hibernate中调用Oracle的函数,以实现高效的数据操作。 首先,我们需要理解Hibernate的核心理念,它允许开发者通过面向对象的方式来处理数据库操作,而无需编写大量的SQL语句。Hibernate通过...

    oracle调用webservice接口地址demo

    为了使Oracle能够调用基于Java的WebService,还需要安装JDK并配置Oracle对Java的支持: 1. **下载并安装JDK**:确保Oracle运行环境中已安装Java环境。 2. **加载Java支持**:使用`loadjava`工具加载必要的JAR文件到...

    JAVA 与ORACLE 存储过程及函数

    在“JAVA与存储过程.txt”文件中,可能包含了具体的示例代码,解释了如何在Java中调用Oracle存储过程和函数,以及如何处理输入和输出参数。这些示例可能涉及到了`Connection`, `PreparedStatement`, `ResultSet`等...

    Linux环境下实现Java调用Windows环境下的Matlab函数

    ### Linux环境下实现Java调用Windows环境下的Matlab函数 #### 一、所需条件及说明 为了实现在Linux环境中通过Java程序来调用Windows系统下的Matlab函数,首先需要确保满足以下条件: 1. **Windows环境下**: - ...

    ibatis调用oracle的函数,存储过程的方法

    本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**:函数是一段可重复使用的PL/SQL代码,它接收输入参数(IN参数),可选地返回一个结果值(RETURN参数)。...

    oracle调用webService

    在系统实现中,有时会有直接在数据库端利用触发器、存储过程等方式进行数据传递、分发的业务,而其中可能会涉及一些业务逻辑,为了处理这些业务逻辑,并简单起见,可以直接在触发器或存储过程中调用一些 Java 类或 ...

    Java直接运行JS代码

    这主要得益于Oracle公司在Java 6版本引入的一个新特性——Java Scripting API(JSR 223),它允许Java程序执行多种脚本语言,包括JavaScript。 ### 1. Java Scripting API (JSR 223) JSR 223是Java的一个标准接口...

    Oracle9i中JAVA和PL_SQL的互操作方法.pdf

    通过这篇文章,我们可以学习到如何在Oracle9i数据库中创建和管理JAVA存储过程,以及如何从JAVA程序中调用PL/SQL存储过程,这对于任何需要在数据库和应用程序之间进行数据交互的开发者来说都是非常有价值的技能。

    java汉字转五笔码,oracle函数转五笔码

    3. 调用函数:在SQL查询中调用这个函数,例如`SELECT your_function('汉字') FROM DUAL;`,这将返回指定汉字的五笔码。 需要注意的是,由于五笔字典较大,存储和查询可能会有性能问题,所以在实际应用中,可能需要...

    oracle 存储过程 函数 dblink

    在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...

    CallableStatement调用Oracle存储过程返回结果集(ResultSet).docx

    总结,CallableStatement在Java中用于调用Oracle存储过程,无论是无返回值、有返回值还是返回结果集,都可以通过设置参数、注册`OUT`参数、处理结果集来实现。在实际开发中,注意数据库连接的管理以及异常的处理,...

    Oracle PlSql 存储过程

    用 Java 调用 Oracle 存储过程可以使用 JDBC 或 Oracle 的java驱动程序。下面是用 Java 调用 Oracle 存储过程的总结: 1. 无返回值的存储过程 无返回值的存储过程可以使用 CallableStatement 来调用。 2. 有...

    oracle存储过程学习经典[语法+实例+调用]

    在Java中调用Oracle存储过程可以通过JDBC API来完成。在调用时,可以根据存储过程是否有返回值来进行区分处理。无返回值的存储过程只需要执行execute命令,而有返回值的存储过程则需要使用CallableStatement对象,并...

    java操作Oracle.pdf

    本文主要分享了一些在使用Oracle数据库时优化Java应用程序的技巧。 1. **选择 Thin 驱动程序**: 在客户端开发中,Oracle提供了OCI驱动和Thin驱动。虽然OCI驱动利用JNI直接与Oracle客户端软件通信,但测试表明,...

Global site tag (gtag.js) - Google Analytics