2

データベースにレコードが存在するかどうかを確認しようとしていますが、このクエリを実行する方法がわかりません。executeQuery(checkSql) でエラーが発生します。助けてくれませんか?

public void addScore(int score, String name)
{
    try {
        con = mgr.getConnection();

        String checkSql = "if EXISTS (select * from HIGHSCORES where name = '"+name+"')";

        Statement st = con.createStatement();
        //ResultSet result = st.executeQuery(checkSql);



        } catch (SQLException e) {
        e.printStackTrace();
    }
    mgr.closeConnection(con);
}
4

2 に答える 2

3
String checkSql = "select count(*) from HIGHSCORES where name = '"+name+"'";

Statement st = con.createStatement();
ResultSet result = st.executeQuery(checkSql);
result.next();
if ( result.getInt(1) == 0) {
  System.out.println("doesn't exist");
} else {
  System.out.println("exists");
}

これを改善するには、SQL インジェクションを防ぐ PreparedStatement に切り替えます。

于 2013-05-05T18:57:29.017 に答える