如何将java String安全地赋值给sql,有可以直接使用的api吗?(String中含单引号等字符)
演示代码,根据实际情况改
Connection connection=null;
PreparedStatement pStatement=null;
Stu student=new Stu();
try {
connection=JDBCUtil.getConnection();
//sql语句,需要使用参数的地方用“?”占位
String sql="select *from stu where id=?";
pStatement=connection.prepareStatement(sql);
pStatement.setString(1, id);//这里按sql里的“?”顺序逐一赋值
resultSet=pStatement.executeQuery();
if(resultSet.next()) {
student.setId(resultSet.getInt("id"));
student.setName(resultSet.getString("name"));
student.setAge(resultSet.getInt("age"));
return student;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JDBCUtil.close(connection, pStatement, resultSet);
}
除非你要打印真实的sql,楼上的代码都能满足你(如果你是mysql的数据库,上面的代码也能直接查看sql)