sql插入还是用PrepareStatement安全些

今天往数据库插入新数据,没多想就用了字符串拼接插入额

sql_insert = "insert into Table(name,sex,resum) values('"+name+"','"+sex+"','"+resum+"')";

statement.executeUpdate(sql_insert );

resum是一个字符串变量,resum部分数据中含有'    就因为“'”中的一个'就把数据给分开了,导致抛出异常:com.microsoft.sqlserver.jdbc.SQLServerException: 's' 附近有语法错误。所以为了防止插入的数据中含有特殊的字符而导致抛异常,选用prepareStatement处理比较好。

//prepareStatement

sql_insert = "insert into Table(name,sex,resum) values(?,?,?)";

prepareStatement pst = conn.prepareStatement(sql_insert);

pst.setString(1,name);

pst.setString(2,sex);

pst.setString(3,resum;

pst.executeUpdate();

这种方法就不用担心上述情况的发生了。



你可能感兴趣的:(sql插入还是用PrepareStatement安全些)