String getDBUSERByUserIdSql =“{call getDBUSERByUserId(?,?,?,?)}”;
try {
dbConnection = getDBConnection();
callableStatement = dbConnection.prepareCall(getDBUSERByUserIdSql);
callableStatement.setInt(1, 10);
callableStatement.registerOutParameter(2, java.sql.Types.VARCHAR);
callableStatement.registerOutParameter(3, java.sql.Types.VARCHAR);
callableStatement.registerOutParameter(4, java.sql.Types.DATE);
// execute getDBUSERByUserId store procedure
callableStatement.executeUpdate();
或
准备好的陈述
答案 0 :(得分:1)
您使用preparedStatement,虽然这是针对SQLi预防而非XSS
答案 1 :(得分:1)
首先,您需要了解preparedStatement和callableStatement之间的区别,
PreparedStatement 当您计划多次使用SQL语句时使用。 PreparedStatement接口在运行时接受输入参数。
CallableStatement 当您要访问数据库存储过程时使用。 CallableStatement接口也可以接受运行时输入参数。
为了避免**XSS**
,你可能更喜欢 preparedStatement ,正如David所说。参考here
希望这会有所帮助!!