use*_*390 2 java mysql sql jdbc
当尝试使用JDBC将字符串的值插入到我的数据库中而不是插入String的值时,它会插入String的名称.
我有一个名为firstName的字符串,该字符串的值由用户输入给出.
这是我的sql语句:
String sql = "Insert INTO users (ID, firstName, address) VALUES ('124','+firstName()','123')";
Run Code Online (Sandbox Code Playgroud)
由于各种原因,最好使用java.sql.PreparedStatement.用参数执行语句.例如,如果要避免sql注入攻击.
使用带参数的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
Run Code Online (Sandbox Code Playgroud)