JDBC - 如何插入字符串值

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)

Pau*_*gas 6

由于各种原因,最好使用java.sql.PreparedStatement.用参数执行语句.例如,如果要避免sql注入攻击.

请参阅Java教程使用准备语句的示例.

使用带参数的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)