栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java程序中调用Java存储过程

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java程序中调用Java存储过程

要返回一个值,您需要它是一个函数,而不是一个过程:

  public static String getBreweryInfo (int Raz_ID)   throws SQLException   {     String sql =       "SELECt Nosaukums FROM Alus_razotaji WHERe ID = ?";//vaicajums    try {      Connection conn = DriverManager.getConnection("jdbc:default:connection:");      PreparedStatement apstmt = conn.prepareStatement(sql);      apstmt.setInt(1, Raz_ID);       ResultSet rset = apstmt.executeQuery();// SQL vaicājuma izpildīšana      if (rset.next()) {          return rset.getString(1);      }     }    catch (SQLException e) {      System.err.println(e.getMessage()); //Kļūdu izvadīsana    }     finally {      rset.close();      apstmt.close(); //Savienojuma aizvēršana    }   }

然后您的包裹变成:

CREATE OR REPLACE PACKAGE BODY BeerBeer AS  FUNCTION getBreweryInfo(Raz_ID number) RETURN varchar2 AS Language Java  NAME 'BeerBeer.getBreweryInfo(int) return java.lang.String';END BeerBeer;

您将其称为:

        String SQL = "{CALL ? = BeerBeer.getBreweryInfo (?)}";        stmt = conn.prepareCall(SQL);        int Raz_ID = 4;        stmt.registerOutParameter(1, java.sql.Types.VARCHAR);        stmt.setInt(2, Raz_ID);        System.out.println("Izpildam JAVA glabajamo proceduru ...");        // Vaicājuma izpilde        stmt.execute();        //Izgustam Alus_razotaja nosaukumu ar getXXX metodi.        String Razotajs = stmt.getString(1);

请注意,out参数现在是索引1,因为它是从函数返回的值,因此您传入的值现在是索引2。当然,所有这些未经测试…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号