0

mysqlデータベースをJavaと一緒に使用できるように、いくつかのことを試し始めました。まず、それについていくつか質問があります。

PHP 開発では mysql をよく使用しましたが、Java では使用したことがありません。MAMP が提供する MySQL を使用できますか、それともスタンドアロンでインストールする必要がありますか?

そして2番目..チュートリアルの助けを借りてこのコードを作成しましたが、得られる唯一の出力は

com.mysql.jdbc.ドライバー

これに使用したコードは以下のとおりです。

package Databases;

import java.sql.*;

public class MysqlConnect{

/* These variable values are used to setup
the Connection object */

 static final String URL = "jdbc:mysql://localhost:3306/test";
 static final String USER = "root";
 static final String PASSWORD = "root";
 static final String DRIVER = "com.mysql.jdbc.Driver";

 public Connection getConnection() throws SQLException {
    Connection con = null;
    try {
       Class.forName(DRIVER); 
       con = DriverManager.getConnection(URL, USER, PASSWORD);
    }
    catch(ClassNotFoundException e) {
       System.out.println(e.getMessage());
       System.exit(-1);
    }
    return con;
 }

 public void getEmployees() {
    ResultSet rs = null;
    try {
       Statement s = getConnection().createStatement();
       rs = s.executeQuery("SELECT id, name, job_id, location FROM person");
       System.out.format("%3s %-15s %-7s %-7s%n", 
          "ID", "NAME", "JOB ID", 
            "LOCATION");
       System.out.format("%3s %15s %7s %7s%n", 
          "---", "---------------", 
            "-------", "--------");

       while(rs.next()) {
          long id = rs.getLong("id");
          String name = rs.getString("name");
          long job = rs.getLong("job_id");
          String location = rs.getString("location");
          System.out.format("%-3d %-15s %7d %5s%n", 
             id, name, job, location);
       }
    }
    catch(SQLException e) {
       System.out.println(e.getMessage());
       System.exit(-1);
    }
 }
}
4

2 に答える 2

7

次のブロックから来ています。

catch(ClassNotFoundException e) {
   System.out.println(e.getMessage());
   System.exit(-1);
}

これは、例外を処理するかなり貧弱な方法です。例外メッセージを出力しているだけです。何が起こっているのかわかりません。むしろ、それをスローするか (これにより、適切なスタックトレースが得られます)、例外メッセージだけでなく、より説明的なメッセージを出力します。

catch(ClassNotFoundException e) {
   System.out.println("JDBC driver class not found in runtime classpath: " + e.getMessage());
   System.exit(-1);
}

特定の例外を修正する方法は、実際には 2 番目の質問です (非常に明白な答え: JDBC ドライバー クラスを含む JAR ファイルをランタイム クラスパスに配置するだけです) 。 MySQL データベース


具体的な問題とは関係ありませんが、どのチュートリアルを読んでいるのかわかりませんが、それは大まかに考えてください。貧弱な例外処理とは別にgetEmployees()、結果セット、ステートメント、および接続を決して閉じないことで、メソッド内の DB リソースもリークしています。これも絶対に良い習慣ではありません。その方法は、前述のミニチュートリアルでも既に説明されています。さらに参照してください: JDBC で Connection、Statement、および ResultSet を閉じる頻度はどれくらいですか?

于 2012-12-19T20:39:15.537 に答える
0

はい、MySQL サーバーをローカルまたはリモートにインストールする必要があります。

MySQL ダウンロード ページから jdbc Driver jar もダウンロードした場合、コードを使用できます。また、適切なユーザー名とパスワードを使用して MySQL インスタンスを構成しました。

于 2012-12-19T20:44:38.390 に答える