[解決済み] [Solved] java.sql.SQLException: データベースが選択されていません - なぜですか?
質問
ここ数日、私はJava経由でmySQLデータベースにアクセスする方法を学ぼうとしていました。
私はドライバをロードし、データベースへの接続を取得することができます(私は例外を取得しないので、少なくとも私はそう思う...)。
というコードです。
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);
}
}
}
実行すると、こうなります。
ドライバが読み込まれました...
接続成功...
database-ConnectionError: java.sql.SQLException: [MySQL][ODBC 5.2(w)ドライバ][mysqld-5.5.31]選択されたデータベースがありません。
データベースはquot;getConnection"の処理中に選択されると思っていたので、本当に問題がわかりません...。
この行を追加して、データベースを選択しようとしました。
stmt.executeUpdate("use test;");
を作成した後、Statementを作成します。
というのも、別の例外が発生して、構文をチェックするように言われたからです。私のコマンドラインでは問題なく動作しているので、それも理解できません...。 このタイプのコマンドをJava経由で使用することが可能かどうかはわかりませんので、もし可能でなければ、私の間違いをお許しください。
私自身の検索中に解決策を見逃すことなく、助けていただけると幸いです
もう、私の問題に返信してくれたり、時間を使ってくれたりするすべての人に感謝します!(笑)
ps. もし私が重要な情報を指摘するのを忘れていたら(忘れていないと思いますが)聞いてください:)
edit: 実行中に新しいデータベースを作成することも試してみました。
stmt.executeUpdate("CREATE DATABASE test;");
これは実際に動作しますが、データベースも選択されません...。
解決方法は?
最初に、私はMySQLデータベースとの接続のための別の良い方法を示すために私の答えを考えています、それははるかに簡単で、より少ないニュアンスです
例外
.
いくつかの手順を行う必要があります。
-
ダウンロード
コネクタ/J
をクラスパスに追加してください。
.jar
をライブラリに追加したり、あるいは YouTube ). - MySQL プログラムでデータベースを作成します。
-
以下の例をご覧ください。 MySQLに接続してクエリを実行する方法を説明したものです。
import java.sql.*; public class MySqlConnection { private String MYSQL_DRIVER = "com.mysql.jdbc.Driver"; private String MYSQL_URL = "jdbc:mysql://localhost:3306/test"; private Connection con; private Statement st; private ResultSet rs; public MySqlConnection() { try { Class.forName(MYSQL_DRIVER); System.out.println("Class Loaded...."); con = DriverManager.getConnection(MYSQL_URL,"",""); System.out.println("Connected to the database...."); st = con.createStatement(); int c =st.executeUpdate("CREATE TABLE Accounts (Name VARCHAR(30))"); System.out.println("Table have been created."); System.out.println(c+" Row(s) have been affected"); con.close(); } catch(ClassNotFoundException ex) { System.out.println("ClassNotFoundException:\n"+ex.toString()); ex.printStackTrace(); } catch(SQLException ex) { System.out.println("SQLException:\n"+ex.toString()); ex.printStackTrace(); } } public static void main(String...args) { new MySqlConnection(); } }
関連
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】どういう意味か。Serializableクラスがstatic final serialVersionUIDフィールドを宣言していないとは?重複している] [重複している] [重複している] [重複している
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み】intがnullであるかどうかを確認する方法
-
[解決済み】javaで無効な文字定数
-
[解決済み】koch snowflake java recursion
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。