Java Hibernate查询与0不一致
当我试图搜索一个以0开头的字符串的fild时,它有时会搜索它,忽略开头的0,返回正确的结果,但如果没有,它会返回一个错误,说“意外标记:字符串的其余部分在0和一个或两个数字之后”Java Hibernate查询与0不一致,java,sql,hibernate,Java,Sql,Hibernate,当我试图搜索一个以0开头的字符串的fild时,它有时会搜索它,忽略开头的0,返回正确的结果,但如果没有,它会返回一个错误,说“意外标记:字符串的其余部分在0和一个或两个数字之后” public String findSingleResultString(String parameter, Object T, String valueParameter, String field) { Session session = HibernateUtil.getFactory(); //
public String findSingleResultString(String parameter, Object T, String valueParameter, String field) {
Session session = HibernateUtil.getFactory();
// Select T.password from FROM User T WHERE T.cpf = 10
String sql = "Select T." + field + " FROM " + T.getClass().getSimpleName() + " T where T." + parameter + " ="
+ valueParameter;
String results = session.createQuery(sql).getSingleResult().toString();
return results;
}
快速解释:参数用于您想要比较的内容,对象是表,ValueParameter是您想要比较的参数的值,field是您想要它返回的内容不要使用字符串连接将参数传递给查询。使用查询参数。这是一个SQL注入漏洞。使用事先准备好的声明会更安全。