2013-03-31 24 views
5

kullanarak yapılandırabilirim Java programlamada yeniyim. String.format kullanarak bir SQL sorgusu dizesi oluşturmak istiyorum. Zaten C# String.format kullanmak ve düzgün şekilde çalışıyorsa, ancak kayıt fasulye sınıf nesnesidir İşte Sql Query String'i String.format

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; 

java

içinde. String.format kıyasla Ancak bu yöntem sadece '{0}', '{1}' ... veritabanının

başka yöntem de ben bu düzgün şekilde çalışıyorsa kullanın, ancak daha kod kurtarmak çalışmıyor

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'da String.format kullanarak SQL sorgu dizesi oluşturmak mümkün mü?

cevap

2

Dize biçimlendirme, Java dizelerini biçimlendirmek için kullanılır. İhtiyacımız olduğunda kullanılabilirler, örneğin, bir String olarak temsil edilecek bir kayan sayının 2 ondalık noktası. Lütfen Dize formatının aşağıdaki makalesine bakınız. How to use java.String.format in Scala? Ancak, her şekilde, String formatlama tekniğini kullanabilirsiniz. Bununla birlikte, onu nasıl kullandığınıza dikkat etmeniz gerekecektir. Sayıları kullanmak yerine, muhtemelen bir s işareti ile bir yüzdelik işaretini kullanarak C türünü kullanmanız gerekecektir. Sorguya yerleştirilecek her dize için% s. Dizelerinizin her birinin, bağlantıda gösterildiği gibi SQL ifadesine eklenmesi durumunda konumlandırmayı belirtmeniz gerekir.

PreparedStatement'ı kullanmak, JDBC SQL deyimlerini yürütmek için kullanılan Java sözleşmesidir ve bu nedenle kullanılmalıdır.

+0

Teşekkürler @blackpanther Dize biçimlendirme kavramını anlıyorum – SarabjeetSingh

+0

PreparedStatement kullanımı sadece bir kural değildir. Daha etkilidir ve SQL Injection'a karşı korur. – Catweazle