इस सेक्शन में कुछ ऐसी सलाह दी गई हैं जो लाइब्रेरी इस्तेमाल करने में आपकी मदद करेंगी:
- खुद का सर्वलेट इस्तेमाल करना
- अधिकार तय करना
- इवेंट के फ़्लो को पसंद के मुताबिक बनाना
DataTableGenerator.generateDataTable
के लिए पैरामीटर पास करना- बिना सर्वलेट वाला डेटा सोर्स लागू करना
अपना सर्वलेट इस्तेमाल करना
डेटा सोर्स लागू करने का सबसे आसान तरीका, लाइब्रेरी की DataSourceServlet
क्लास से मिलता है.
DataSourceServlet
के अलावा किसी दूसरी क्लास से इनहेरिट करने के लिए, डेटा सोर्स इस तरह लागू करें:
-
DataTableGenerator
इंटरफ़ेस लागू करें औरgetCapabilities()
औरgenerateDataTable()
को बदलें. - डेटा सोर्स का फ़्लो चलाने के लिए, अपने सर्वलेट के कोड में से
DataSourceHelper.executeDataSourceServletFlow()
पर कॉल करें.इस तरीके में ये पैरामीटर लगते हैं :- एक
HttpServletRequest
ऑब्जेक्ट. - एक
HttpServletResponse
ऑब्जेक्ट. - आपने ऊपर बताए गए पहले चरण में
DataTableGenerator
इंटरफ़ेस लागू किया है. - प्रतिबंधित या बिना पाबंदी वाले ऐक्सेस मोड के बारे में बताने वाला बूलियन.
- एक
उदाहरण के लिए, अगर आप किसी AuthServlet
सर्वलेट क्लास से अपने सर्वलेट को इनहेरिट करना चाहते हैं,
जिसे AuthServlet
पहले से मौजूद पुष्टि करने की सुविधा देता है,
तो DataSourceServlet
की जगह SimpleServletExample
का इस्तेमाल करने के लिए, आप SimpleServletExample
को इस तरह दोबारा लिख सकते हैं:
-
DataTableGenerator
इंटरफ़ेस लागू करें. - लागू किए गए
DataSourceServlet
सेgenerateDataTable()
कोDataTableGenerator
लागू करने पर ले जाएं. -
Capabilities.None
को लौटाने के लिए, अपनेDataTableGenerator
लागू करने के तरीके मेंgetCapabilities()
को बदलें. - अपने सर्वलेट कोड (
doGet()
याdoPost()
) सेDataSourceHelper.executeDataSourceServletFlow()
को कॉल करें और अपनाDataTableGenerator
लागू करने का काम पास करें. इस तरीके से डेटासोर्स का पूरा फ़्लो चलता है, जिसमें डेटा सोर्स के नतीजों को सर्वेल रिस्पॉन्स में रेंडर किया जाता है.
अगर आप किसी सर्वलेट फ़्रेमवर्क का इस्तेमाल कर रहे हैं, जिसमें आप आम तौर पर फ़्रेमवर्क से मिली ऐब्स्ट्रैक्ट क्लास इनहेरिट करते हैं, तो आप उसी तकनीक का इस्तेमाल कर सकते हैं.
उदाहरण के लिए, WebWork का इस्तेमाल करने पर, ActionSupport
क्लास इनहेरिट की जा सकती है.
अधिकार तय करना
अगर आपके डेटा स्टोर में बहुत ज़्यादा डेटा है और आपको डेटा सोर्स की परफ़ॉर्मेंस को
बढ़ाना है, तो क्वेरी करने के लिए अपने डेटा स्टोर की क्वेरी का इस्तेमाल करें. उदाहरण के लिए, मान लें कि आपका डेटा स्टोर, एक डेटाबेस है और डेटाबेस में बहुत ज़्यादा कॉलम हैं. अगर कोई विज़ुअलाइज़ेशन उनमें से कुछ कॉलम का अनुरोध करता है, तो डेटाबेस में SELECT
कार्रवाई चलाना, सभी कॉलम वापस लाने और SELECT
की क्वेरी करने के लिए, लाइब्रेरी की क्वेरी की क्षमता का इस्तेमाल करने से ज़्यादा बेहतर होता है.
SELECT
की सुविधाएं लागू करने के लिए, डेटाबेस में SELECT
ऑपरेशन चलाने और डेटा टेबल लौटाने के लिए कोड लिखा जाता है.
आपका कोड जो क्वेरी करने की क्षमताएं देता है, उनके बारे में बताने के लिए, Capabilities
enum का इस्तेमाल करें. उपलब्ध विकल्प हैं:
NONE
: डिफ़ॉल्ट, आपका कोड कोई क्वेरी ऑपरेशन नहीं देता है.SQL
: आपका कोड, SQL क्वेरी कार्रवाइयों की सुविधा देता है.SORT_AND_PAGINATION
: आपका कोड, क्रम में लगाने और पेजों को क्रम में लगाने से जुड़ी क्वेरी की कार्रवाइयों, दोनों की जानकारी देता है.SELECT
: आपके कोड में, चुनी हुई कार्रवाई करने का विकल्प है.ALL
: आपका कोडSQL
,SORT_AND_PAGINATION
, औरSELECT
कार्रवाइयां दिखाता है.
ध्यान दें: सभी मामलों में लाइब्रेरी, ऐसी किसी भी क्वेरी कार्रवाई को हैंडल करती है जो आपके कोड के ज़रिए नहीं दी जाती.
NONE
के अलावा, किसी दूसरे फ़ंक्शन को लागू करने के लिए, Capabilities.getCapabilities()
को बदलें
और डेटा स्टोर से क्वेरी करने के लिए, DataTable.generateDataTable()
लागू करें और डेटा टेबल दिखाएं.
तीन उदाहरणों में क्षमताओं को लागू करने का तरीका दिखाया गया है: AdvancedExampleServlet
,
AdvancedExampleServlet2
, और SqlDataSourceServlet
.
सभी example
पैकेज में हैं. AdvancedExampleServlet2
के बारे में तय करने की क्षमताएं और इवेंट के फ़्लो में चर्चा की गई है.
इवेंट के फ़्लो को पसंद के मुताबिक बनाना
इवेंट का डिफ़ॉल्ट फ़्लो, DataSourceHelper.executeDataSourceServletFlow
में तय किया जाता है.
डिफ़ॉल्ट फ़्लो इस तरह है:
- क्वेरी पैरामीटर निकालें और उन्हें पार्स करें.
- सिर्फ़ पाबंदी वाले ऐक्सेस मोड के लिए, पुष्टि करें कि अनुरोध उसी डोमेन से आता है जिसमें सर्वलेट है.
- दो क्वेरी ऑब्जेक्ट बनाने के अनुरोध को पार्स करें: डेटा सोर्स क्वेरी और पूरा होने की क्वेरी. डेटा सोर्स की क्वेरी को
generateDataTable()
में लागू करें. generateDataTable()
को लागू करने पर एक डेटा टेबल जनरेट होता है.- चरण 5 में जनरेट की गई डेटा टेबल पर पूरी की गई क्वेरी चलाएं.
- डेटा टेबल को विज़ुअलाइज़ेशन के बताए गए फ़ॉर्मैट में बनाएं और सर्वलेट का जवाब सेट करें.
इवेंट के अपने फ़्लो तय करने के लिए, datasource.DataSourceHelper
में हेल्पर फ़ंक्शन को कॉल करें. इसे लागू करने का उदाहरण देखने के लिए, क्षमताएं और इवेंट का फ़्लो तय करना देखें.
DataTableGenerator.generateDataTable
को पैरामीटर देना
HttpServletRequest.setAttribute
का इस्तेमाल करके, उस डेटा को पास किया जा सकता है जो क्वेरी का हिस्सा नहीं है या HttpServletRequest
ऑब्जेक्ट को DataTableGenerator.generateDataTable
में भेजने के लिए. नीचे उदाहरण के तौर पर कोड दिया गया है.
अपने सर्वलेट के कोड में, वह ऑब्जेक्ट डालें जिसे आप HttpServletRequest
में इस तरह से भेजना चाहते हैं:
request.setAttribute("my_object_name", myObject); DataSourceHelper.executeDataSourceServletFlow(request, response, dataTableGenerator);
अपने dataTableGenerator
इंटरफ़ेस को लागू करने की प्रोसेस में, HttpServletRequest
से इस तरह ऑब्जेक्ट पाएं:
public DataTable generateDataTable(Query query, HttpServletRequest request){ Object myObject = request.getAttribute("my_object_name"); // Add your code to manipulate myObject here }
नॉन-सर्वलेट का डेटा सोर्स लागू करना
अगर आप सर्वलेट का इस्तेमाल किए बिना लाइब्रेरी लागू करते हैं, तो आप सिर्फ़ वही क्लास और हेल्पर फ़ंक्शन इस्तेमाल कर सकते हैं जिन्हें सर्वलेट एनवायरमेंट की ज़रूरत नहीं होती है. इनमें Query
और DataTable
क्लास और DataSourceHelper
के कुछ फ़ंक्शन शामिल हैं, जैसे कि parseQuery
, applyQuery
, validateQuery
, और splitQuery
.
इन क्लास और फ़ंक्शन का इस्तेमाल करके, ये काम किए जा सकते हैं:
- विज़ुअलाइज़ेशन क्वेरी पार्स करें.
- क्वेरी को डेटा सोर्स क्वेरी और पूरी होने की क्वेरी में बांटें.
- डेटा टेबल जनरेट करने के लिए, पूरा होने की क्वेरी चलाएं.
- डेटा टेबल को
HTML
,CSV
याJSON
फ़ॉर्मैट में विज़ुअलाइज़ेशन पर वापस लाएं.