我是 Java 编程的新手。我想使用 String.format
构建 SQL 查询字符串。我已经在 C# 中使用了 String.format
并且工作正常,但在 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;
这里的signup是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();
}
是否可以在 java 中使用 String.format
构建 SQL 查询字符串?
最佳答案
字符串格式化用于格式化 Java 字符串。它们可以在我们需要时使用,例如,将 float 的 2 个小数点表示为字符串。请参阅以下有关字符串格式化的文章。 How to use java.String.format in Scala?但是,无论如何,您都可以使用字符串格式化技术。但是,您必须注意如何使用它。您可能不得不使用 C 类型,而不是使用数字,使用带 s 的百分号,例如%s 用于每个要放置在查询中的字符串。如果要将每个字符串插入到链接中所示的 SQL 语句中,您将必须指明位置。
使用 PreparedStatement 是用于执行 JDBC SQL 语句的 Java 约定,因此应该使用它。
关于java - 我可以使用 String.format 构建 Sql 查询字符串吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728087/