내 API의 사용자 이름과 비밀번호를 인증하기 위해이 쿼리를 작성하려고하지만 오류 열을 찾을 수 없습니다. 사용자 이름과 암호 모두 문자열이며 MYSQL 데이터베이스를 사용하고 있습니다. 나는 사용자 이름과 암호가 문자열이기 때문에 인용문에 오류가 있다고 생각합니다. 아래의 코드를 어떻게 수정할 수 있습니까? 아니면 같은 코드를 작성하는 더 좋은 방법이 있습니까? P.S - 봄용 MVC를 사용하고 있으며 이것은 첫 번째 프로젝트입니다.JDBC 템플릿 쿼리의 오류
@Override
public TypeInfo getRole(final TypeInfo typeinfo) {
String sql =
"select Role from registartion where UserName=\"" + typeinfo.getUserName() + "and Password=\"" + typeinfo.getPassword() + "/"";
return jdbcTemplate.query(sql, new ResultSetExtractor<TypeInfo>() {
@Override
public TypeInfo extractData(ResultSet rs)
throws SQLException, DataAccessException {
if (rs.next()) {
System.out.println("VALID USER");
TypeInfo typeinfo1 = new TypeInfo();
typeinfo1.setUserName(typeinfo.getUserName());
typeinfo1.setPassword(typeinfo.getPassword());
typeinfo1.setRole(rs.getString("Role"));
return typeinfo1;
}
System.out.println("Not A valid user");
return null;
}
});
}
"사용자 이름이 ****** 인 registartion에서 역할 선택"이라는 오류가 발생합니다. ******* 찾을 수 없습니다.
아마도 테이블 이름은 '등록'이 아니고 '등록'입니까? –
SQL 문자열 리터럴은 ** single ** 따옴표로 구분됩니다. 큰 따옴표는 객체 이름을 인용하는 데 사용됩니다. 그래서 본질적으로 사용자 이름 = ""; 그 열은 존재하지 않습니다. 또한 매개 변수와 함께 PreparedStatement를 사용하고 사용자가 제공 한 값을 쿼리 문자열로 연결하지 마십시오. –