खोज…


परिचय

जावा से एक संबंधपरक डेटाबेस का उपयोग करने के लिए एपीआई JDBC है।

यह API JDBC ड्राइवर द्वारा कार्यान्वित किया जाता है।

इसका उपयोग करने के लिए, JARA क्लास पथ पर ड्राइवर के साथ JAR-फ़ाइल डालें।

यह दस्तावेज़ नमूने दिखाता है कि डेटाबेस से कनेक्ट करने के लिए JDBC ड्राइवर का उपयोग कैसे करें।

टिप्पणियों

JDBC URL

JDBC URL इनमें से एक फॉर्म ले सकता है:

  • jdbc:postgresql:// host [: port ]/[ database ][ parameters ]

    host डिफ़ॉल्ट पर localhost , port 5432 करने के लिए।
    यदि host एक IPv6 पता है, तो इसे वर्ग कोष्ठक में संलग्न किया जाना चाहिए।
    डिफ़ॉल्ट डेटाबेस नाम कनेक्ट करने वाले उपयोगकर्ता के नाम के समान है।

    विफलता को लागू करने के लिए, कई host [: port ] प्रविष्टियों को अल्पविराम द्वारा अलग करना संभव है।
    जब तक एक कनेक्शन सफल नहीं हो जाता, तब तक उन्हें बारी-बारी से आजमाया जाता है।

  • jdbc:postgresql: database [ parameters ]

  • jdbc:postgresql:/[ parameters ]

    ये फॉर्म localhost कनेक्शन के लिए हैं।

parameters key [= value ] जोड़े की एक सूची है, जिसके प्रमुख हैं ? और द्वारा अलग & । यदि value गायब है, तो इसे सही माना जाता true

एक उदाहरण:

jdbc:postgresql://localhost/test?user=fred&password=secret&ssl&sslfactory=org.postgresql.ssl.NonValidatingFactory

संदर्भ

Java.sql.DriverManager से जुड़ रहे हैं

यह कनेक्ट करने का सबसे सरल तरीका है।

सबसे पहले, ड्राइवर को java.sql.DriverManager साथ पंजीकृत होना होगा ताकि यह पता चल सके कि किस वर्ग का उपयोग करना है।
यह आमतौर पर java.lang.Class.forname( <driver class name> ) साथ ड्राइवर वर्ग को लोड करके किया जाता है।

/**
 * Connect to a PostgreSQL database.
 * @param url the JDBC URL to connect to; must start with "jdbc:postgresql:"
 * @param user the username for the connection
 * @param password the password for the connection
 * @return a connection object for the established connection
 * @throws ClassNotFoundException if the driver class cannot be found on the Java class path
 * @throws java.sql.SQLException if the connection to the database fails
 */
private static java.sql.Connection connect(String url, String user, String password)
    throws ClassNotFoundException, java.sql.SQLException
{
    /*
     * Register the PostgreSQL JDBC driver.
     * This may throw a ClassNotFoundException.
     */
    Class.forName("org.postgresql.Driver");
    /*
     * Tell the driver manager to connect to the database specified with the URL.
     * This may throw an SQLException.
     */
    return java.sql.DriverManager.getConnection(url, user, password);
}

ऐसा नहीं है कि उपयोगकर्ता और पासवर्ड को JDBC URL में भी शामिल किया जा सकता है, जिस स्थिति में आपको उन्हें getConnection विधि कॉल में निर्दिष्ट नहीं करना है।

Java.sql.DriverManager और प्रॉपर्टीज़ के साथ जुड़ना

इसके बजाय उपयोगकर्ता और पासवर्ड की तरह कनेक्शन पैरामीटर निर्दिष्ट करने के (एक पूरी सूची देखने के लिए यहाँ URL या एक अलग मानकों में), आप एक में उन्हें पैक कर सकते हैं java.util.Properties वस्तु:

/**
 * Connect to a PostgreSQL database.
 * @param url the JDBC URL to connect to. Must start with "jdbc:postgresql:"
 * @param user the username for the connection
 * @param password the password for the connection
 * @return a connection object for the established connection
 * @throws ClassNotFoundException if the driver class cannot be found on the Java class path
 * @throws java.sql.SQLException if the connection to the database fails
 */
private static java.sql.Connection connect(String url, String user, String password)
    throws ClassNotFoundException, java.sql.SQLException
{
    /*
     * Register the PostgreSQL JDBC driver.
     * This may throw a ClassNotFoundException.
     */
    Class.forName("org.postgresql.Driver");
    java.util.Properties props = new java.util.Properties();
    props.setProperty("user", user);
    props.setProperty("password", password);
    /* don't use server prepared statements */
    props.setProperty("prepareThreshold", "0");
    /*
     * Tell the driver manager to connect to the database specified with the URL.
     * This may throw an SQLException.
     */
    return java.sql.DriverManager.getConnection(url, props);
}

एक कनेक्शन पूल का उपयोग करके javax.sql.DataSource से कनेक्ट करना

एप्लिकेशन सर्वर कंटेनरों में JNDI के साथ javax.sql.DataSource का उपयोग करना आम है, जहां आप एक नाम के तहत एक डेटा स्रोत पंजीकृत करते हैं और जब भी आपको कनेक्शन की आवश्यकता होती है तो इसे देखें।

यह वह कोड है जो प्रदर्शित करता है कि डेटा स्रोत कैसे काम करते हैं:

/**
 * Create a data source with connection pool for PostgreSQL connections
 * @param url the JDBC URL to connect to. Must start with "jdbc:postgresql:"
 * @param user the username for the connection
 * @param password the password for the connection
 * @return a data source with the correct properties set
 */
private static javax.sql.DataSource createDataSource(String url, String user, String password)
{
    /* use a data source with connection pooling */
    org.postgresql.ds.PGPoolingDataSource ds = new org.postgresql.ds.PGPoolingDataSource();
    ds.setUrl(url);
    ds.setUser(user);
    ds.setPassword(password);
    /* the connection pool will have 10 to 20 connections */
    ds.setInitialConnections(10);
    ds.setMaxConnections(20);
    /* use SSL connections without checking server certificate */
    ds.setSslMode("require");
    ds.setSslfactory("org.postgresql.ssl.NonValidatingFactory");

    return ds;
}

जब आप इस फ़ंक्शन को कॉल करके एक डेटा स्रोत बना लेते हैं, तो आप इसे इस तरह उपयोग करेंगे:

/* get a connection from the connection pool */
java.sql.Connection conn = ds.getConnection();

/* do some work */

/* hand the connection back to the pool - it will not be closed */
conn.close();


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow