6

我是 Java 编程新手。我想使用String.format. 我已经String.format在 C# 中使用它并且工作正常,但在 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.format是否可以在 java 中使用构建 SQL 查询字符串?

4

1 回答 1

2

字符串格式化用于格式化 Java 字符串。例如,当我们需要将浮点数的 2 个小数点表示为字符串时,可以使用它们。请参阅下面的字符串格式化文章。如何在 Scala 中使用 java.String.format?但是,无论如何,您都可以使用字符串格式化技术。但是,您必须注意如何使用它。除了使用数字,您可能必须使用 C 类型,即使用带有 s 的百分号,例如 %s 用于放置在查询中的每个字符串。如果您的每个字符串都插入到 SQL 语句中,如链接中所示,您将必须指出位置。

Using PreparedStatement 是用于执行 JDBC SQL 语句的 Java 约定,因此应该使用它。

于 2013-03-31T09:28:13.617 回答