के साथ मूल डीबी कनेक्शन पूल मैं अपना पहला कनेक्शन पूल बनाने की कोशिश कर रहा हूं। मैं टॉमकैट 7 और एक माईएसक्यूएल डीबी के साथ जावा वेब एपिकेशन बना रहा हूं, और मैं सबसे सरल कनेक्शन पूल बनाना चाहता हूं। मैंने कई ट्यूटोरियल्स पर एक नज़र डाली है लेकिन यह मेरे लिए वास्तव में स्पष्ट नहीं है, इसलिए मैं आपको यह पुष्टि करना चाहता हूं कि मैं अच्छा कर रहा हूं या नहीं।जावा और टॉमकैट 7
मैं एक कनेक्शन पूल प्रबंधक के रूप में निम्नलिखित वर्ग लिखा है:
package dao.mysql;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.apache.tomcat.jdbc.pool.PoolProperties;
public class MySQLConnectionPool {
private static DataSource datasource;
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/mydb";
private static String username = "user";
private static String password = "password";
public MySQLConnectionPool() {
datasource = new DataSource(configurePoolProperties(driver, url, username, password));
}
private PoolProperties configurePoolProperties(String driver, String url, String username, String password) {
PoolProperties properties = new PoolProperties();
properties.setDriverClassName(driver);
properties.setUrl(url);
properties.setUsername(username);
properties.setPassword(password);
return properties;
}
public static synchronized Connection getConnection() {
Connection connection = null;
try {
connection = datasource.getConnection();
} catch (SQLException ex) {
System.out.println("Error while getting a connection from the pool! \nSQL state:" + ex.getSQLState() + "\nMESSAGE" + ex.getMessage());
}
return connection;
}
}
मैं स्थिर गुणों के बारे में यकीन नहीं है और न ही सिंक्रनाइज़।
और मुझे पूल के "क्लाइंट" वर्गों के बारे में निश्चित नहीं है। मैं समझता हूँ कि वे केवल है
Connection con = MySQLConnectionPool.getConnection();
और अंत का उपयोग कर एक कनेक्शन लेने के लिए इस संबंध
con.close();
का उपयोग कर बंद और बस हो गया? और यह भी करने के लिए कोई आसान या बेहतर तरीका है?
बहुत बहुत धन्यवाद!
में प्रदान किया गया नाम एक डीएओ * डेटासोर्स * प्रबंधित नहीं करता है, यह बस * इसका उपयोग करता है। आप जावाईई ट्यूटोरियल भी पढ़ना चाहेंगे: http://docs.oracle.com/javaee/6/tutorial/doc/bncjj.html –
यदि कनेक्शन पूल को टॉमकैट में जेएनडीआई डाटासोर्स के रूप में कॉन्फ़िगर किया गया है और संसाधन की फैक्ट्री विशेषता है 'org.apache.tomcat.jdbc.pool.DataSourceFactory' है, क्लास जावा से डेटास्रोत तक पहुंचने पर डेटासोर्स प्रकार क्या है? मैं 'org.apache.tomcat.jdbc.pool.DataSource' का उपयोग करता हूं, या यह' javax.sql.DataSource' होना चाहिए (बाद वाला संसाधन के प्रकार 'विशेषता' का मान है? – Sefran2