Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

क्या हम CallableStatement का उपयोग करके फंक्शन को कॉल कर सकते हैं? JDBC में उदाहरण सहित समझाएं?


प्रोसीजर की तरह, आप डेटाबेस में फंक्शन भी बना सकते हैं और उन्हें स्टोर कर सकते हैं।

सिंटैक्स

MySQL डेटाबेस में फंक्शन बनाने का सिंटैक्स निम्नलिखित है:

CREATE FUNCTION Function_Name(input_arguments) RETURNS output_parameter BEGIN    declare variables;    statements . . . . . . . . . .    return data_type;    END

उदाहरण

मान लें कि डेटाबेस में Emp नाम की एक टेबल है जिसकी सामग्री निम्नलिखित है:

+--------+------------+----------------+ | Name   | DOB        | Location      | +--------+------------+----------------+ | Amit   | 1970-01-08 | Hyderabad      | | Sumith | 1970-01-08 | Vishakhapatnam | | Sudha  | 1970-01-05 | Vijayawada     | +--------+------------+----------------+

नीचे फंक्शन बनाने का एक उदाहरण दिया गया है। यहाँ, हम getDob() नाम का एक फंक्शन बना रहे हैं जो कर्मचारी का नाम स्वीकार करता है, DOB कॉलम का मान पुनर्प्राप्त करता है और लौटाता है।

CREATE FUNCTION getDob(emp_name VARCHAR(50)) RETURNS DATE BEGIN declare dateOfBirth DATE; select DOB into dateOfBirth from EMP where Name = emp_name; return dateOfBirth; END

JDBC का उपयोग करके फंक्शन कॉल करना

आप स्टोर्ड प्रोसीजर की तरह CallableStatement ऑब्जेक्ट का उपयोग करके फंक्शन को कॉल कर सकते हैं, JDBC प्रोग्राम का उपयोग करके फंक्शन को कॉल करने के लिए आपको:

  • डेटाबेस से कनेक्ट करें।

  • PreparedStatement ऑब्जेक्ट बनाएं और इसके कंस्ट्रक्टर को String प्रारूप में फंक्शन कॉल पास करें।

  • प्लेसहोल्डर पर मान सेट करें।

  • Callable स्टेटमेंट निष्पादित करें।

JDBC से फंक्शन कॉल करने का क्वेरी निम्नलिखित है:

{? = call getDob(?)}

जैसा कि आप देख सकते हैं, क्वेरी में प्लेसहोल्डर (?) हैं, ठीक प्रीपेयर्ड और कालेबल स्टेटमेंट की तरह।

उपरोक्त क्वेरी में पहला प्लेसहोल्डर फंक्शन के रिटर्न मान को दर्शाता है और दूसरा प्लेसहोल्डर इनपुट पैरामीटर को दर्शाता है।

आपको उस प्लेसहोल्डर को रजिस्टर करना होगा जो रिटर्न मान को दर्शाता है, registerOutParameter() मेथड (CallableStatement इंटरफ़ेस का) का उपयोग करके आउटपुट पैरामीटर के रूप में। इस मेथड को आपको एक पूर्णांक मान पास करना होगा जो प्लेसहोल्डर की स्थिति को दर्शाता है और, पैरामीटर के SQL टाइप को दर्शाने वाला एक पूर्णांक वेरिएबल।

cstmt.registerOutParameter(1, Types.DATE);

setString() मेथड का उपयोग करके इनपुट पैरामीटर पर मान सेट करें। (चूंकि getDob() फंक्शन VARCHAR टाइप का मान स्वीकार करता है)।

उदाहरण

निम्नलिखित JDBC प्रोग्राम getDob फंक्शन को निष्पादित करता है और परिणाम पुनर्प्राप्त करता है:

import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Types; public class CallingFunctionsUsingCallable2 {    public static void main(String args[]) throws SQLException {       // ड्राइवर रजिस्टर करना       DriverManager.registerDriver(new com.mysql.jdbc.Driver());       // कनेक्शन प्राप्त करना       String mysqlUrl = "jdbc:mysql://localhost/sampleDB";       Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");       System.out.println("Connection established......");       // CallableStatement तैयार करना       CallableStatement cstmt = con.prepareCall("{? = call getDob(?)}");       cstmt.registerOutParameter(1, Types.DATE);       cstmt.setString(2, "Amit");       cstmt.execute();       System.out.print("Date of birth: "+cstmt.getDate(1));    } }

आउटपुट

Connection established...... Date of birth: 1970-01-08

  1. जावास्क्रिप्ट में एसिंक्रोनस फंक्शन्स उदाहरण के साथ जावास्क्रिप्ट में एसिंक्रोनस फंक्शन्स उदाहरण के साथ

    एसिंक्रोनस फंक्शन्स को async कीवर्ड से परिभाषित किया जाता है और ये ES 2015 में पेश किए गए थे। इन फंक्शन्स को कॉलबैक की तुलना में प्रॉमिस लिखने का बेहतर तरीका प्रदान करने के लिए पेश किया गया था। await कीवर्ड का उपयोग async फंक्शन के अंदर कंट्रोल फ्लो को रोकने और प्रॉमिस के लिए प्रतीक्षा करने के लिए

  1. JDBC का उपयोग करके डेटाबेस से फाइल कैसे पुनर्प्राप्त करें? JDBC का उपयोग करके डेटाबेस से फाइल कैसे पुनर्प्राप्त करें?

    ResultSet इंटरफ़ेस Clob डेटाटाइप को पुनर्प्राप्त करने के लिए getClob() और getCharacterStream() नामक मेथड प्रदान करता है, जिसमें आमतौर पर फाइल की सामग्री संग्रहीत होती है।ये मेथड कॉलम के इंडेक्स को दर्शाने वाला एक पूर्णांक (या, कॉलम के नाम को दर्शाने वाला एक स्ट्रिंग मान) स्वीकार करते हैं और निर्दिष्

  1. पायथन में factorplot फंक्शन का उपयोग करके वायलिन प्लॉट कैसे विज़ुअलाइज़ करें पायथन में factorplot फंक्शन का उपयोग करके वायलिन प्लॉट कैसे विज़ुअलाइज़ करें

    बारप्लॉट फंक्शन एक श्रेणीबद्ध चर और एक सतत चर के बीच संबंध स्थापित करता है। डेटा को आयताकार बार के रूप में दर्शाया जाता है जहां बार की लंबाई उस विशिष्ट श्रेणी में डेटा के अनुपात को इंगित करती है।पॉइंट प्लॉट बार प्लॉट के समान हैं लेकिन पूरे बार को दर्शाने के बजाय, डेटा पॉइंट का अनुमानित मान दूसरे अक्