java - 我可以使用 String.format 构建 Sql 查询字符串吗

标签 java mysql

我是 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/

相关文章:

java - ImageIcon 帮助 + 关闭 JOptionPane

mySQL - 如何解释我的 EXPLAIN 结果并优化此查询?

mysql - 如何将文本文件信息存储到我的sql数据库中

mysql - 如何从列中选择最小值或最大值来选择整行 - MySql

java - 将变量传递给另一个 View : best practice

java - VSCODE Java 构建状态停止

java.io.IOException : Cannot run program "scala": CreateProcess error=2,

java - ALIGN_CENTER 无法解析或不是字段

android 建立 mysql 连接并获取一些数据

MySQL:选择具有相同名称的所有行,然后更新除最高值之外的所有行的另一列?