
obride CVE-2018-25075 के साथ
OBridge Oracle PL/SQL पैकेज प्रक्रियाओं को कॉल करने के लिए एक सरल Java स्रोत कोड जनरेटर प्रदान करता है।
समर्थित इनपुट, आउटपुट पैरामीटर और रिटर्न मान इस प्रकार हैं:
निम्नलिखित प्रकारों को लागू नहीं किया जा सकता, क्योंकि JDBC ड्राइवर उनका समर्थन नहीं करता:
जनरेट किया गया कोड Java 1.6 के साथ कंपाइल होता है।
नवीनतम संस्करण releases से डाउनलोड करें।
डाउनलोड करने के बाद, एक XML कॉन्फ़िगरेशन फ़ाइल बनाएँ:
<configuration>
<jdbcUrl>jdbc:oracle:thin:scott/tiger@localhost:1521:xe</jdbcUrl> <!-- jdbc connection string for obridge -->
<sourceRoot>.</sourceRoot> <!-- where to generate sources - related to this configuration file -->
<rootPackageName>hu.obridge.test</rootPackageName> <!-- root Java package, generator builds the directory structure -->
<packages>
<entityObjects>objects</entityObjects> <!-- object types are going to this package -->
<converterObjects>converters</converterObjects> <!-- converter util classes are going to this package -->
<procedureContextObjects>context</procedureContextObjects> <!-- procedure parameter entities are going to this package -->
<packageObjects>packages</packageObjects> <!-- procedure calling utility classes are going to this package -->
</packages>
</configuration>
जनरेटर चलाएँ:
java -jar obridge.jar -c <obridge-config.xml>
OBridge निर्दिष्ट डेटाबेस से कनेक्ट होता है और आवश्यक क्लासेस उत्पन्न करता है।
उदाहरण के लिए आपके पास निम्नलिखित PL/SQL कोड है:
Create Or Replace Package simple_procedures is
Function simple_func(a In Varchar2,
b In Out Varchar2,
c Out Varchar2) Return Number;
End simple_procedures;
जनरेट किया गया स्रोत:
public class SimpleProcedures {
public static SimpleProceduresSimpleFunc simpleFunc(String a, String b, Connection connection) throws SQLException { ... }
}
आप SimpleProcedures.simpleFunc विधि को कॉल कर सकते हैं:
SimpleProceduresSimpleFunc ret = SimpleProcedures.simpleFunc("hello", "world", conn); // conn is the database connection
रिटर्न ऑब्जेक्ट इनपुट और आउटपुट पैरामीटर को धारण करेगा, जो Java प्रकारों में परिवर्तित होते हैं।
public class SimpleProceduresSimpleFunc {
private BigDecimal functionReturn;
private String a;
private String b;
private String c;
// getters, setters
}