Jdbc 防止DAO层中的SQL注入

Jdbc 防止DAO层中的SQL注入,jdbc,Jdbc,假设我们在DTOObject中有数据 public void loginUser(UserDTO) { String name = UserDTO.getName(); String pwd = UserDTO.getPassword(); String sql = "select UNAME , PWD from LoginTable where uname='"+name+"' and PWD='"+pwd+"'; } 请在这段代码中告诉我,我们如何防止SQL注入??我们如何检查恶意字

假设我们在DTOObject中有数据

public void loginUser(UserDTO)
{

String name = UserDTO.getName();
String pwd = UserDTO.getPassword();
String sql  = "select UNAME , PWD from LoginTable where uname='"+name+"' and PWD='"+pwd+"';
}

请在这段代码中告诉我,我们如何防止SQL注入??我们如何检查恶意字符???

您最好的办法是将SQL从不属于DTO的DTO移动到它所属的DAO,并在那里使用PreparedStatement。

下面是关于在JDBC中使用
PreparedStatement
的说明。如果你四处搜索,还有很多其他的

作为记录,我必须说,我不同意这样的说法,即准备好的语句的主要优点是它可以(尽管不一定)提前发送到数据库。主要优点是参数