私は JDBC API チュートリアルとリファレンス 3/E (MAN、なんと空しい本) を読んでいますが、Oracle が提供する MySQL コネクタを使用して Java プログラムを MySQL データベースに接続するのに問題があります。
フォルダに入れました
C:\Windows\Sun\Java\mysql-connector-java-5.1.24
そして、JGrasp の Workspace CLASSPATH を次のように指定しました
C:\Windows\Sun\Java\mysql-connector-java-5.1.24\mysql-connector-java-5.1.24-bin.jar
「Coffee」というデータベースに接続しようとしています。それは間違いなく存在します:
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| coffee |
| mysql |
| performance_schema |
| phpmyadmin |
+---------------------+
5 rows in set (0.03 sec)
これが私のJavaコードです。(あなたが本を持っているなら、私は 88 ページにいます。私のコードと彼らのコードの唯一の違いは、いくつかのコメントと、私が MySQL を使用していることです。)
//first, import sql package
import java.sql.*;
//name class CreateCoffees
public class CreateCoffees {
public static void main(String[] args){
String url = "jdbc:mysql://127.0.0.1:coffee";
//declare variables
Connection conn;
String createString = "create table COFFEES " +
"(COF_NAME varchar(32), " +
"SUP_ID int, " +
"PRICE float, " +
"SALES int, " +
"TOTAL int)";
Statement stmt;
//instructions
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(java.lang.ClassNotFoundException cnfe){
System.out.println("Class Not Found - " + cnfe.getMessage());
}
try{
conn = DriverManager.getConnection(url, "root", "");
stmt = conn.createStatement();
stmt.executeUpdate(createString);
stmt.close();
conn.close();
}
catch(SQLException sqle){
System.out.println("SQL Exception: " + sqle.getMessage());
}
}
}
すべて正常にコンパイルされますが、実行すると次の SQLException がスローされます。
SQL Exception: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "coffee"'.
私は正確に何を間違っていますか?Java とデータベース間の接続をテストするために実行できるものはありますか? 私は両方ともかなり新しいです。
また、これは宿題ではないことに注意してください。
編集:問題のあるコード行は
String url = "jdbc:mysql://127.0.0.1:coffee";
に変更する必要があります
String url = "jdbc:mysql://127.0.0.1/coffee";
コーヒーはデータベースであり、ポートではないためです。
もっと必要だと思います。助けてくれたみんなに感謝します。