0

私は 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";

コーヒーはデータベースであり、ポートではないためです。

もっと必要だと思います。助けてくれたみんなに感謝します。

4

3 に答える 3

2

接続 URL がcoffeeポートとして使用されています。次のようなものを使用する必要があります。

jdbc:mysql://127.0.0.1:3306/coffee
于 2013-03-28T01:43:58.810 に答える
1

ポート番号に「コーヒー」が付いているのはなぜですか? そこにmysqlサーバーのポート番号があるはずです

jdbc:mysql://127.0.0.1:coffee

ヒント: デフォルトのポート番号は 3306 です。

jdbc:mysql://127.0.0.1:3306/coffee

(データベース名がコーヒーであると仮定します)

于 2013-03-28T01:42:34.277 に答える
1

パーサーが混乱し、それcoffeeがポート番号であると考えていると思います。

これを試して:

jdbc:mysql://127.0.0.1/coffee
于 2013-03-28T01:44:11.710 に答える