OpenJDK 8 - SQLXML

इंटरफ़ेस SQLXML




openjdk

इंटरफ़ेस SQLXML

public interface SQLXML

SQL XML प्रकार के लिए JavaTM प्रोग्रामिंग भाषा में मैपिंग। XML एक अंतर्निहित प्रकार है जो डेटाबेस तालिका की एक पंक्ति में एक स्तंभ मान के रूप में एक XML मान संग्रहीत करता है। डिफ़ॉल्ट रूप से ड्राइवर SQLXML ऑब्जेक्ट को डेटा के बजाय XML डेटा के लिए लॉजिकल पॉइंटर के रूप में लागू करते हैं। SQLXML ऑब्जेक्ट उस लेन-देन की अवधि के लिए मान्य है जिसमें इसे बनाया गया था।

SQLXML इंटरफ़ेस XML मान को स्ट्रिंग, रीडर या राइटर के रूप में या स्ट्रीम के रूप में एक्सेस करने के तरीके प्रदान करता है। XML मान को एक स्रोत के माध्यम से भी एक्सेस किया जा सकता है या परिणाम के रूप में सेट किया जा सकता है, जो XML पार्सर APIs जैसे DOM, SAX और StAX के साथ-साथ XSLT ट्रांसफ़ॉर्म और XPath मूल्यांकन के साथ उपयोग किया जाता है।

इंटरफेस में तरीके ResultSet, CallableStatement, और ReadyedStatement, जैसे कि getSQLXML प्रोग्रामर को XML मान एक्सेस करने की अनुमति देता है। इसके अलावा, इस इंटरफ़ेस में XML मान अपडेट करने के तरीके हैं।

SQLXML उदाहरण का XML मान बाइनरीस्ट्रीम का उपयोग करके प्राप्त किया जा सकता है

SQLXML sqlxml = resultSet.getSQLXML(column);
   InputStream binaryStream = sqlxml.getBinaryStream();
उदाहरण के लिए, DOM पार्सर के साथ XML मान पार्स करने के लिए:
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
   Document result = parser.parse(binaryStream);
या अपने हैंडलर को SAX पार्सर के साथ XML मान पार्स करने के लिए:
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
   parser.parse(binaryStream, myHandler);
या एक Stax पार्सर के साथ XML मान पार्स करने के लिए:
XMLInputFactory factory = XMLInputFactory.newInstance();
   XMLStreamReader streamReader = factory.createXMLStreamReader(binaryStream);

क्योंकि डेटाबेस XML के लिए एक अनुकूलित प्रतिनिधित्व का उपयोग कर सकते हैं, getSource () और setResult () के माध्यम से मूल्य तक पहुंच प्राप्त कर सकते हैं, जिससे एक स्ट्रीम प्रतिनिधित्व और XML को पार्स करने के बिना सुधार प्रसंस्करण प्रदर्शन हो सकता है।

उदाहरण के लिए, DOM दस्तावेज़ नोड प्राप्त करने के लिए:

DOMSource domSource = sqlxml.getSource(DOMSource.class);
   Document document = (Document) domSource.getNode();
या myNode के लिए DOM दस्तावेज़ नोड का मान सेट करने के लिए:
DOMResult domResult = sqlxml.setResult(DOMResult.class);
   domResult.setNode(myNode);
या, अपने हैंडलर को SAX ईवेंट भेजने के लिए:
SAXSource saxSource = sqlxml.getSource(SAXSource.class);
   XMLReader xmlReader = saxSource.getXMLReader();
   xmlReader.setContentHandler(myHandler);
   xmlReader.parse(saxSource.getInputSource());
या, SAX ईवेंट से परिणाम मान सेट करने के लिए:
SAXResult saxResult = sqlxml.setResult(SAXResult.class);
   ContentHandler contentHandler = saxResult.getHandler();
   contentHandler.startDocument();
   // set the XML elements and attributes into the result
   contentHandler.endDocument();
या, StAX ईवेंट प्राप्त करने के लिए:
StAXSource staxSource = sqlxml.getSource(StAXSource.class);
   XMLStreamReader streamReader = staxSource.getXMLStreamReader();
या, StAX ईवेंट से परिणाम मान सेट करने के लिए:
StAXResult staxResult = sqlxml.setResult(StAXResult.class);
   XMLStreamWriter streamWriter = staxResult.getXMLStreamWriter();
या, परिणाम को दर्ज करने के लिए xsltFile आउटपुट में XSLT का उपयोग करते हुए XML मूल्य पर XSLT रूपांतरण करने के लिए।
File xsltFile = new File("a.xslt");
   File myFile = new File("result.xml");
   Transformer xslt = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
   Source source = sqlxml.getSource(null);
   Result result = new StreamResult(myFile);
   xslt.transform(source, result);
या, XML मूल्य पर एक XPath अभिव्यक्ति का मूल्यांकन करने के लिए:
XPath xpath = XPathFactory.newInstance().newXPath();
   DOMSource domSource = sqlxml.getSource(DOMSource.class);
   Document document = (Document) domSource.getNode();
   String expression = "/foo/@bar";
   String barValue = xpath.evaluate(expression, document);
XSLT परिवर्तन का परिणाम होने के लिए XML मान सेट करना:
File sourceFile = new File("source.xml");
   Transformer xslt = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
   Source streamSource = new StreamSource(sourceFile);
   Result result = sqlxml.setResult(null);
   xslt.transform(streamSource, result);
किसी भी स्रोत को न्यूट्रांसफॉर्मर () कहकर पहचान के परिवर्तन का उपयोग करके परिणाम में बदला जा सकता है:
Transformer identity = TransformerFactory.newInstance().newTransformer();
   Source source = sqlxml.getSource(null);
   File myFile = new File("result.xml");
   Result result = new StreamResult(myFile);
   identity.transform(source, result);
स्रोत से मानक आउटपुट तक की सामग्री लिखने के लिए:
Transformer identity = TransformerFactory.newInstance().newTransformer();
   Source source = sqlxml.getSource(null);
   Result result = new StreamResult(System.out);
   identity.transform(source, result);
DOMResult से DOMSource बनाने के लिए:
DOMSource domSource = new DOMSource(domResult.getNode());

अपूर्ण या अमान्य XML मानों के सेट होने पर एक SQLException हो सकती है या निष्पादित () होने पर अपवाद हो सकता है। निष्पादित होने से पहले सभी स्ट्रीम बंद होनी चाहिए () होती हैं या एक SQLException डाली जाएगी।

XML मानों को किसी SQLXML ऑब्जेक्ट से पढ़ना और लिखना एक बार में हो सकता है। पठनीय और पढ़ने योग्य नहीं की संकल्पनात्मक अवस्थाएं यदि रीडिंग एपीआई में से कोई एक मान लौटाएगा या अपवाद फेंक देगा। यदि लेखन API में से कोई एक मान सेट करेगा या अपवाद छोड़ देगा, तो लेखन की अवधारणात्मक अवस्थाएँ और लिखने योग्य नहीं।

राज्य पढ़ने योग्य से मुक्त (एक बार) पढ़ने योग्य नहीं है (या किसी भी रीडिंग एपीआई को कहा जाता है: getBinaryStream (), getCharacterStream (), getSource (), और getString ()। जब यह होता है तो कार्यान्वयन राज्य में परिवर्तनशील नहीं हो सकता है।

राज्य लिखने योग्य से एक बार मुक्त () या लेखन एपीआई में से किसी को भी लिखने योग्य नहीं है: setBinaryStream (), setCharacterStream (), setResult (), और setString ()। जब यह होता है तो कार्यान्वयन राज्य को पठनीय नहीं बदल सकता है।

JDBC ड्राइवर डेटा प्रकार का समर्थन करता है, तो SQLXML इंटरफ़ेस पर सभी विधियों को पूरी तरह से लागू किया जाना चाहिए।

जबसे:
1.6
यह भी देखें:
javax.xml.parsers , javax.xml.stream , javax.xml.transform , javax.xml.xpath

तरीके

मुक्त

void free()
   throws SQLException

यह विधि इस ऑब्जेक्ट को बंद कर देती है और उन संसाधनों को रिलीज़ करती है जो इसे आयोजित किया था। SQL XML ऑब्जेक्ट अमान्य हो जाता है और न ही पठनीय या लेखन योग्य जब यह विधि कहा जाता है। free में बुलाए जाने के बाद, free के अलावा किसी अन्य विधि को लागू करने के किसी भी प्रयास के परिणामस्वरूप एक SQLException को फेंक दिया जाएगा। यदि free को कई बार कहा जाता है, तो free में आने वाली कॉल को नो-ऑप माना जाता है।

फेंकता:
SQLException - यदि XML मान को मुक्त करने में कोई त्रुटि है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

getBinaryStream

InputStream getBinaryStream()
                     throws SQLException

इस SQLXML उदाहरण द्वारा निर्दिष्ट XML मान स्ट्रीम के रूप में पुनर्प्राप्त करता है। एक्सएमएल 1.0 विनिर्देश के परिशिष्ट एफ के अनुसार इनपुट स्ट्रीम के बाइट्स की व्याख्या की जाती है। इस विधि का व्यवहार ResultSet.getBinaryStream () के समान है, जब ResultSet के निर्दिष्ट कॉलम में SQLXML का java.sql.Types टाइप होता है।

SQL XML ऑब्जेक्ट तब पठनीय नहीं हो जाता है जब इस विधि को कॉल किया जाता है और यह कार्यान्वयन के आधार पर भी लिखने योग्य नहीं हो सकता है।

यह दिखाता है:
XML डेटा वाली स्ट्रीम।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है। यदि राज्य पठनीय नहीं है, तो एक अपवाद फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

setBinaryStream

OutputStream setBinaryStream()
                      throws SQLException

उस स्ट्रीम को पुनः प्राप्त करता है जिसका उपयोग XML मान लिखने के लिए किया जा सकता है जिसे यह SQLXML उदाहरण दर्शाता है। स्ट्रीम स्थिति 1 से शुरू होती है। स्ट्रीम के बाइट्स एक्सएमएल 1.0 विनिर्देश के परिशिष्ट एफ के अनुसार व्याख्या किए जाते हैं। इस पद्धति का व्यवहार ResultSet.updateBinaryStream () के समान है, जब ResetSet के निर्दिष्ट कॉलम में java.sql टाइप होता है। SQLXML के टाइप्स।

SQL XML ऑब्जेक्ट इस विधि को कॉल करने पर लेखन योग्य नहीं हो जाता है और कार्यान्वयन के आधार पर पठनीय भी नहीं हो सकता है।

यह दिखाता है:
किस स्ट्रीम में डेटा लिखा जा सकता है।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है। यदि राज्य लेखन योग्य नहीं है, तो एक अपवाद को फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

getCharacterStream

Reader getCharacterStream()
                   throws SQLException

इस SQLXML उदाहरण द्वारा निर्दिष्ट XML मान को java.io.Reader ऑब्जेक्ट के रूप में पुनर्प्राप्त करता है। इस स्ट्रीम के प्रारूप को org.xml.sax.InputSource द्वारा परिभाषित किया गया है, जहाँ स्ट्रीम में वर्ण XML 2 के परिशिष्ट बी और XML 1.0 विनिर्देशन के अनुसार यूनिकोड कोड बिंदुओं का प्रतिनिधित्व करते हैं। हालांकि यूनिकोड के अलावा एक एन्कोडिंग घोषणा मौजूद हो सकती है, धारा का एन्कोडिंग यूनिकोड है। इस विधि का व्यवहार ResultSet.getCharacterStream () के समान होता है जब ResultSet के निर्दिष्ट कॉलम में SQLXML का java.sql.Types टाइप होता है।

SQL XML ऑब्जेक्ट तब पठनीय नहीं हो जाता है जब इस विधि को कॉल किया जाता है और यह कार्यान्वयन के आधार पर भी लिखने योग्य नहीं हो सकता है।

यह दिखाता है:
XML डेटा वाली स्ट्रीम।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है। अपवाद के getCause () विधि अधिक विस्तृत अपवाद प्रदान कर सकती है, उदाहरण के लिए, यदि स्ट्रीम में मान्य वर्ण नहीं हैं। यदि राज्य पठनीय नहीं है, तो एक अपवाद फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

setCharacterStream

Writer setCharacterStream()
                   throws SQLException

XML मान लिखने के लिए उपयोग की जाने वाली स्ट्रीम को पुनर्प्राप्त करता है जिसे यह SQLXML इंस्टेंस दर्शाता है। इस स्ट्रीम के प्रारूप को org.xml.sax.InputSource द्वारा परिभाषित किया गया है, जहाँ स्ट्रीम में वर्ण XML 2 के परिशिष्ट बी और XML 1.0 विनिर्देशन के अनुसार यूनिकोड कोड बिंदुओं का प्रतिनिधित्व करते हैं। हालांकि यूनिकोड के अलावा एक एन्कोडिंग घोषणा मौजूद हो सकती है, धारा का एन्कोडिंग यूनिकोड है। इस विधि का व्यवहार ResultSet.updateCharacterStream () के समान होता है जब ResultSet के निर्दिष्ट कॉलम में SQLXML का java.sql.Types टाइप होता है।

SQL XML ऑब्जेक्ट इस विधि को कॉल करने पर लेखन योग्य नहीं हो जाता है और कार्यान्वयन के आधार पर पठनीय भी नहीं हो सकता है।

यह दिखाता है:
किस स्ट्रीम में डेटा लिखा जा सकता है।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है। अपवाद के getCause () विधि अधिक विस्तृत अपवाद प्रदान कर सकती है, उदाहरण के लिए, यदि स्ट्रीम में मान्य वर्ण नहीं हैं। यदि राज्य लेखन योग्य नहीं है, तो एक अपवाद को फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

GetString

String getString()
          throws SQLException

इस SQLXML उदाहरण द्वारा निर्दिष्ट XML मान का एक स्ट्रिंग प्रतिनिधित्व लौटाता है। इस स्ट्रिंग के प्रारूप को org.xml.sax.InputSource द्वारा परिभाषित किया गया है, जहाँ स्ट्रीम में वर्ण XML 2 के परिशिष्ट बी और XML 1.0 विनिर्देश के परिशिष्ट बी के अनुसार यूनिकोड कोड बिंदुओं का प्रतिनिधित्व करते हैं। हालांकि यूनिकोड के अलावा एक एन्कोडिंग घोषणा मौजूद हो सकती है, स्ट्रिंग का एन्कोडिंग यूनिकोड है। इस विधि का व्यवहार ResultSet.getString () के समान होता है जब ResultSet के निर्दिष्ट कॉलम में SQLXML का java.sql.Types टाइप होता है।

SQL XML ऑब्जेक्ट तब पठनीय नहीं हो जाता है जब इस विधि को कॉल किया जाता है और यह कार्यान्वयन के आधार पर भी लिखने योग्य नहीं हो सकता है।

यह दिखाता है:
इस SQLXML उदाहरण द्वारा निर्दिष्ट XML मान का एक स्ट्रिंग प्रतिनिधित्व।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है। अपवाद के getCause () विधि अधिक विस्तृत अपवाद प्रदान कर सकती है, उदाहरण के लिए, यदि स्ट्रीम में मान्य वर्ण नहीं हैं। यदि राज्य पठनीय नहीं है, तो एक अपवाद फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

setString

void setString(String value)
        throws SQLException

इस SQLXML उदाहरण द्वारा निर्दिष्ट XML प्रतिनिधित्व को दिए गए स्ट्रिंग प्रतिनिधित्व को सेट करता है। इस स्ट्रिंग के प्रारूप को org.xml.sax.InputSource द्वारा परिभाषित किया गया है, जहाँ स्ट्रीम में वर्ण XML 2 के परिशिष्ट बी और XML 1.0 विनिर्देश के परिशिष्ट बी के अनुसार यूनिकोड कोड बिंदुओं का प्रतिनिधित्व करते हैं। हालांकि यूनिकोड के अलावा एक एन्कोडिंग घोषणा मौजूद हो सकती है, स्ट्रिंग का एन्कोडिंग यूनिकोड है। इस पद्धति का व्यवहार ResultSet.updateString () के समान है जब ResultSet के निर्दिष्ट कॉलम में SQLXML का java.sql.Types टाइप होता है।

SQL XML ऑब्जेक्ट इस विधि को कॉल करने पर लेखन योग्य नहीं हो जाता है और कार्यान्वयन के आधार पर पठनीय भी नहीं हो सकता है।

पैरामीटर:
value - XML ​​मान
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है। अपवाद के getCause () विधि अधिक विस्तृत अपवाद प्रदान कर सकती है, उदाहरण के लिए, यदि स्ट्रीम में मान्य वर्ण नहीं हैं। यदि राज्य लेखन योग्य नहीं है, तो एक अपवाद को फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

getSource

<T extends Source> T getSource(Class<T> sourceClass)
                        throws SQLException

इस SQLXML उदाहरण द्वारा निर्दिष्ट XML मान को पढ़ने के लिए एक स्रोत देता है। XML पार्सर्स और XSLT ट्रांसफार्मर के इनपुट के रूप में स्रोतों का उपयोग किया जाता है।

XML पार्सर्स के स्रोतों में डिफ़ॉल्ट रूप से नाम स्थान प्रसंस्करण होगा। स्रोत का systemID कार्यान्वयन निर्भर है।

SQL XML ऑब्जेक्ट तब पठनीय नहीं हो जाता है जब इस विधि को कॉल किया जाता है और यह कार्यान्वयन के आधार पर भी लिखने योग्य नहीं हो सकता है।

ध्यान दें कि SAX एक कॉलबैक आर्किटेक्चर है, इसलिए एक लौटा SAXSource तब एक सामग्री हैंडलर के साथ सेट होना चाहिए जो पार्सिंग से SAX ईवेंट प्राप्त करेगा। सामग्री हैंडलर XML की सामग्री के आधार पर कॉलबैक प्राप्त करेगा।

SAXSource saxSource = sqlxml.getSource(SAXSource.class);
   XMLReader xmlReader = saxSource.getXMLReader();
   xmlReader.setContentHandler(myHandler);
   xmlReader.parse(saxSource.getInputSource());
प्रकार पैरामीटर:
T - इस क्लास ऑब्जेक्ट द्वारा मॉडल किए गए वर्ग का प्रकार
पैरामीटर:
sourceClass - स्रोत का वर्ग, या अशक्त। यदि कक्षा शून्य है, तो विक्रेता विशिष्ट स्रोत कार्यान्वयन वापस कर दिया जाएगा। निम्नलिखित कक्षाएं न्यूनतम पर समर्थित हैं:
javax.xml.transform.dom.DOMSource - returns a DOMSource
   javax.xml.transform.sax.SAXSource - returns a SAXSource
   javax.xml.transform.stax.StAXSource - returns a StAXSource
   javax.xml.transform.stream.StreamSource - returns a StreamSource
यह दिखाता है:
XML मान पढ़ने के लिए एक स्रोत।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है या यदि यह सुविधा समर्थित नहीं है। अपवाद का getCause () विधि एक अधिक विस्तृत अपवाद प्रदान कर सकती है, उदाहरण के लिए, यदि XML पार्सर अपवाद होता है। यदि राज्य पठनीय नहीं है, तो एक अपवाद फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6

setResult

<T extends Result> T setResult(Class<T> resultClass)
                        throws SQLException

इस SQLXML उदाहरण द्वारा निर्दिष्ट XML मान सेट करने के लिए एक परिणाम देता है।

परिणाम का systemID कार्यान्वयन निर्भर है।

SQL XML ऑब्जेक्ट इस विधि को कॉल करने पर लेखन योग्य नहीं हो जाता है और कार्यान्वयन के आधार पर पठनीय भी नहीं हो सकता है।

ध्यान दें कि SAX एक कॉलबैक आर्किटेक्चर है और लौटे SAXResult में एक कंटेंट हैंडलर है, जो XML की सामग्री के आधार पर SAX ईवेंट प्राप्त करेगा। मान असाइन करने के लिए XML दस्तावेज़ की सामग्री के साथ सामग्री हैंडलर को कॉल करें।

SAXResult saxResult = sqlxml.setResult(SAXResult.class);
   ContentHandler contentHandler = saxResult.getXMLReader().getContentHandler();
   contentHandler.startDocument();
   // set the XML elements and attributes into the result
   contentHandler.endDocument();
प्रकार पैरामीटर:
T - इस क्लास ऑब्जेक्ट द्वारा मॉडल किए गए वर्ग का प्रकार
पैरामीटर:
resultClass - परिणाम की कक्षा, या अशक्त। यदि resultClass शून्य है, तो एक विक्रेता विशिष्ट परिणाम कार्यान्वयन वापस आ जाएगा। निम्नलिखित कक्षाएं न्यूनतम पर समर्थित हैं:
javax.xml.transform.dom.DOMResult - returns a DOMResult
   javax.xml.transform.sax.SAXResult - returns a SAXResult
   javax.xml.transform.stax.StAXResult - returns a StAXResult
   javax.xml.transform.stream.StreamResult - returns a StreamResult
यह दिखाता है:
XML मान सेट करने के लिए एक परिणाम देता है।
फेंकता:
SQLException - यदि XML मान संसाधित करने में कोई त्रुटि है या यदि यह सुविधा समर्थित नहीं है। अपवाद का getCause () विधि एक अधिक विस्तृत अपवाद प्रदान कर सकती है, उदाहरण के लिए, यदि XML पार्सर अपवाद होता है। यदि राज्य लेखन योग्य नहीं है, तो एक अपवाद को फेंक दिया जाता है।
SQLFeatureNotSupportedException - यदि JDBC ड्राइवर इस विधि का समर्थन नहीं करता है
जबसे:
1.6