JDBC - 如何插入字符串值

时间:2012-05-08 23:16:07

标签: java mysql sql jdbc

当尝试使用JDBC将字符串的值插入到我的数据库中而不是插入String的值时,它会插入String的名称。

我有一个名为firstName的字符串,该字符串的值由用户输入给出。

这是我的sql语句:

String sql = "Insert INTO users (ID, firstName, address) VALUES ('124','+firstName()','123')";

3 个答案:

答案 0 :(得分:6)

出于各种原因,最好使用java.sql.PreparedStatement。用参数执行语句。例如,如果您想避免sql injection攻击。

请参阅Using Prepared Statements中的The Java Tutorials中的示例。

使用带参数的SQL语句的优点是,您可以使用相同的语句,并在每次执行时为其提供不同的值。

PreparedStatement pstmt = conn.prepareStatement(
   "UPDATE EMPLOYEES SET FIRST_NAME= ? WHERE ID = ?");

pstmt.setString(1, "user1080390"); // set parameter 1 (FIRST_NAME)
pstmt.setInt(2, 101); // set parameter 2 (ID)

int rows = pstmt.executeUpdate(); // "rows" save the affected rows

答案 1 :(得分:0)

试试这个

String sql = "Insert INTO users (ID, firstName, address) VALUES ('124','"+firstName()+"','123')";

为防止sql注入,您需要在查询中使用之前转义字符串或尝试预准备语句。

答案 2 :(得分:0)

像这样......

String firstName ="sample";
String sql = "Insert INTO users (ID, firstName, address) VALUES ('124',"+firstName+",'123')";