पिछले दिनों मैं कैसे जावा के माध्यम से डेटाबेस का उपयोग करने की जानने की कोशिश कर रहा था। मैं ड्राइवर लोड और डेटाबेस से संबंध प्राप्त करने में सक्षम हूँ (कम से कम मुझे ऐसा लगता है, के बाद से मैं एक अपवाद वहाँ नहीं मिलता है ..)java.sql.SQLException: कोई डेटाबेस चयनित नहीं - क्यों?
कोड है:
import java.sql.*;
public class test
{
public static void main(String[] args)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("driver loaded...");
}
catch(ClassNotFoundException e){
System.out.println("Error in loading the driver..."+e);
System.exit(0);
}
try
{
Connection dbConnection= DriverManager.getConnection("jdbc:odbc:test","root","password");
System.out.println("Connection successful...");
Statement stmt = dbConntection.createStatement();
stmt.executeUpdate("create table Accounts (name char(20))");
}
catch(SQLException e)
{
System.out.println("database-ConnectionError: "+e);
System.exit(0);
}
}
}
जब मैं इसे निष्पादित, यह कहते हैं:
driver loaded...
Connection successful...
database-ConnectionError: java.sql.SQLException: [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.31]No database selected
मैं वास्तव में समस्या पता नहीं है, क्योंकि मैंने सोचा डेटाबेस "getConnection" प्रक्रिया के दौरान चयन किया जाता है ....
मैं जोड़कर एक डेटाबेस का चयन करने की कोशिश की यह रेखा:
stmt.executeUpdate("use test;");
स्टेटमेंट बनाने के बाद।
दुर्भाग्य से यह काम नहीं किया क्योंकि मैं एक और अपवाद जो कहा मैं वाक्य रचना पर जांच होनी चाहिए मिला है। मुझे समझ में नहीं आता है कि या तो क्योंकि मेरी कमांडलाइन में यह ठीक काम करता है ... मुझे नहीं पता कि जावा के माध्यम से इन प्रकार के आदेशों का उपयोग करना संभव है, इसलिए यदि यह नहीं है, तो कृपया मेरी गलती को क्षमा करें।
मुझे आशा है कि आप मेरी मदद कर सकते हैं और मैं अपने ही खोज के दौरान समाधान याद नहीं किया!
पहले से ही सब जो जवाब दें और अपनी समस्याओं पर अपने समय का उपयोग करने के लिए धन्यवाद!
ps। अगर मैं कुछ महत्वपूर्ण infos का कहना भूल गया (मुझे नहीं लगता कि मैंने किया) कहें :)
संपादित करें: मैं भी क्रम
stmt.executeUpdate("CREATE DATABASE test;");
यह वास्तव में काम करता है के दौरान एक नया डेटाबेस बनाने की कोशिश की है, लेकिन डेटाबेस या तो चयनित नहीं किया जाएगा ...
एक अलग रूप में के रूप में: एक JDBC ड्राइवर के साथ, आप 'उपयोग की तरह आदेशों का उपयोग नहीं करना चाहिए 'डेटाबेस के बीच स्विच करने के लिए। इसके बजाय आपको 'setCatalog' और/या' setSchema' का उपयोग करना चाहिए (या कनेक्शन स्ट्रिंग में डेटाबेस निर्दिष्ट करें)। '' का उपयोग करके ड्राइवर के गलत व्यवहार का कारण बन सकता है। –