当尝试使用JDBC将字符串的值插入到我的数据库中而不是插入String的值时,它会插入String的名称。
我有一个名为firstName的字符串,该字符串的值由用户输入给出。
这是我的sql语句:
String sql = "Insert INTO users (ID, firstName, address) VALUES ('124','+firstName()','123')";
答案 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')";