如何将java String安全地赋值给sql,有可以直接使用的api吗?(String中含单引号等字符)

如何将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)