Java 我可以使用String.format生成Sql查询字符串吗
我是Java编程新手。我想使用Java 我可以使用String.format生成Sql查询字符串吗,java,mysql,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}')", s
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;
这里注册是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字符串。例如,当我们需要将浮点数的2个小数点表示为字符串时,可以使用它们。请参阅以下关于字符串格式的文章。但是,无论如何,您都可以使用字符串格式化技术。但是,您必须注意如何使用它。与使用数字不同,您可能必须使用C类型,即使用带s的百分号,例如,对于要放置在查询中的每个字符串使用%s。如果要将每个字符串插入到SQL语句中,则必须指明位置,如链接中所示
使用PreparedStatement是用于执行JDBC SQL语句的Java约定,因此应该使用它。谢谢@blackpanther我理解字符串格式化的概念使用PreparedStatement不仅仅是一种约定。它效率更高,可以防止SQL注入。