জেডিবিসি ব্যবহারের জন্য আমাদের স্ট্যান্ডার্ড কোড বিভাগটি হ'ল ...
Connection conn = getConnection(...);
Statement stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rset = stmt.executeQuery (sqlQuery);
// do stuff with rset
rset.close(); stmt.close(); conn.close();
প্রশ্ন 1: সংযোগ পুলটি ব্যবহার করার সময়, শেষে কোনওটি সংযোগটি বন্ধ করে দেওয়া উচিত? যদি তাই হয়, পুলিংয়ের উদ্দেশ্যটি কি হারিয়ে যায় না? এবং যদি তা না হয় তবে সংযোগের কোনও নির্দিষ্ট উদাহরণ মুক্ত হয়ে পুনরায় ব্যবহার করা যেতে পারে তখন ডেটা সোর্স কীভাবে জানতে পারে? আমি এটির জন্য একটু বিভ্রান্ত হয়েছি, যে কোনও পয়েন্টার প্রশংসা করেছেন।
প্রশ্ন 2: নিম্নলিখিত পদ্ধতিটি কি মানের কাছাকাছি কিছু আছে? পুল থেকে সংযোগ পাওয়ার চেষ্টা বলে মনে হচ্ছে, এবং যদি ডেটা সোর্স স্থাপন করা যায় না, তবে পুরানো ফ্যাশনযুক্ত ড্রাইভারম্যানেজারটি ব্যবহার করুন। রানটাইমের সময় কোন অংশটি কার্যকর হচ্ছে তা আমরা এখনও নিশ্চিত নই। উপরের প্রশ্নটি পুনরাবৃত্তি করে, কেউ কি এই জাতীয় পদ্ধতিতে সংযোগটি বন্ধ করতে হবে?
আপনাকে ধন্যবাদ, - এমএস
synchronized public Connection getConnection (boolean pooledConnection)
throws SQLException {
if (pooledConnection) {
if (ds == null) {
try {
Context envCtx = (Context)
new InitialContext().lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/NamedInTomcat");
return ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
}}
return (ds == null) ? getConnection (false) : ds.getConnection();
}
return DriverManager.getConnection(
"jdbc:mysql://"+ipaddy+":"+dbPort +"/" + dbName, uName, pWord);
}
সম্পাদনা: আমার মনে হয় যেহেতু আমরা কোনও স্ট্যাক ট্রেস দেখতে পাচ্ছি না তাই আমরা পুলের সংযোগ পাচ্ছি।