オンラインの簡単な例を使用して、私はJavaプログラムを実行してテーブルからユーザーを戻しています。JavaプログラムはmySQLデータベースに接続しません
データベースはMySQLです。私はすでにJDBCドライバをダウンロードしてJRE7/libフォルダに保存しました。
問題はプログラムがデータベースに接続しないこと、tryブロック全体をスキップして最後に "test"文字列を出力することです。私はこれの大きな一歩を見過ごしたことがありますか?本当にイライラしています!!
EDIT:データベースへの接続を設定しようとしています。
mysql-connector-java-5.1.18-binは、jre7/libに格納されています。
スタートアップmysql workbench。接続はcom.fyp.dbという名前で作成され、ホストアドレスは127.0.0.1:3306です。
次に、私のコードを実行すると、mySQLワークベンチによって提供されるサンプルテーブル - sakilaをクエリしようとします。
インストール済みのMySQLワークベンチ。インストールされたJDBCドライバ私はあなたがこの行が必要だと思う
public class Version {
public static void main(String[] args) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
//String url = "jdbc:mysql://127.0.0.1/sakila";
String url = "jdbc:mysql://localhost:3306/sakila";
String user = "root";
String password = "root";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery("select * from ACTOR;");
System.out.println("test");
if (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
tryブロックをスキップしません。それ以外の場合は、エラーが出力されます。ヒント:System.out.println(...)をさらに追加して、何が起こっているのかを調べてください。 – klonq
なぜあなたはデータベースに接続していないのですか?おそらく、 "test"がresultSetの最初の行の最初の列にあるのでしょうか? – oers
確かにtryブロックをスキップするため、iveはそこにいくつかの "test"文字列を追加し、それらは出力されません。 – Jnanathan