我是Java編程新手。我想用String.format
構建一個SQL查詢字符串。我已經在C#中使用String.format
和它的正常工作,但不是在java中我可以使用String.format構建Sql查詢字符串嗎
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查詢字符串?
Thanks @blackpanther我理解字符串格式的概念 – SarabjeetSingh
使用PreparedStatement不僅僅是一個約定。它更高效並且可以防止SQL注入。 – Catweazle