使用 JDBC 執行 INSERT 時,若直接在 SQL 字串中寫變數名稱(如 values(ID,PASSWORD,NAME)),資料庫會將其視為字面值而非參數,導致寫入空值。正確做法是使用 PreparedStatement 佔位符。
String sql = "insert into qq(ID,PASSWORD,NAME) values(ID,PASSWORD,NAME)";
st.executeUpdate(sql); // 寫入的都是字串 "ID"、"PASSWORD"、"NAME"
String sql = "insert into qq(ID,PASSWORD,NAME) values(?,?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, s1);
ps.setString(2, s2);
ps.setString(3, s3);
ps.executeUpdate();
切記:拼接 SQL 字串極易出錯且不安全,養成使用 PreparedStatement 的習慣。