6

私はJavaプログラミングが初めてです。を使用して SQL クエリ文字列を作成したいと考えていますString.format。私はすでにString.formatC# で使用しており、正常に動作していますが、Java では動作していません

String Query = String.format("insert into authentication(Id,Name,Email,Password,DOB,Gender,Phone,SQ,SA) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')", signup.getId(), signup.getName(), signup.getEmail(), signup.getPassword(), signup.getDate_Of_Birth(), signup.getGender(), signup.getPhone(), signup.getSQ(), signup.getSA());

try {
    ps = con.prepareStatement(Query);
    int i = ps.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

return i;

ここでサインアップは Bean クラス オブジェクトです。しかし、このメソッドは機能せず、'{0}','{1}'... をデータベースに保存するだけです

私が使用する別の方法は正常に機能していますが、string.format と比較してより多くのコードがあります

try {
    ps = con.prepareStatement("insert into authentication Id=?,Name=?,Email=?,Password=?,DOB=?,Gender=?,Phone=?,SQ=?,SA=?,IsVerified=?,IsPay=? ");
    ps.setString(1, signup.getId());
    ps.setString(2, signup.getName());
    ps.setString(3, signup.getEmail());
    ps.setString(4, signup.getPassword());
    ps.setString(5, signup.getDate_Of_Birth());
    ps.setString(6, signup.getGender());
    ps.setString(7, signup.getPhone());
    ps.setString(8, signup.getSQ());
    ps.setString(9, signup.getSA());

    int i = ps.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

String.formatJavaを使用してSQLクエリ文字列を作成することは可能ですか?

4

1 に答える 1

2

文字列の書式設定は、Java 文字列の書式設定に使用されます。たとえば、浮動小数点数の小数点以下 2 桁を文字列として表す必要がある場合に使用できます。文字列フォーマットについては以下の記事をご覧ください。Scalaでjava.String.formatを使用するには? ただし、文字列の書式設定手法を使用することもできます。ただし、使い方には注意が必要です。数字を使用する代わりに、クエリに配置される各文字列に対して %s など、パーセント記号と s を使用する C タイプを使用する必要があるでしょう。リンクに示されているように、各文字列を SQL ステートメントに挿入する場合は、位置を示す必要があります。

PreparedStatement の使用は、JDBC SQL ステートメントの実行に使用される Java 規則であるため、使用する必要があります。

于 2013-03-31T09:28:13.617 に答える