SSH开发遇见这样的错误求大神指点 20
packageorg.easybooks.bookstore.dao.impl;importjava.util.List;importorg.easybooks.book...
package org.easybooks.bookstore.dao.impl;
import java.util.List;
import org.easybooks.bookstore.dao.*;
import org.easybooks.bookstore.vo.User;
import org.hibernate.*;
public class UserDAO extends BaseDAO implements IUserDAO{
public User validateUser(String username,String password){
String sql=("select * from user where username='"+username+"'and password='"+password+"'");
Session session=getSession();
Query query=session.createQuery(sql);
query.setParameter(0,username);
query.setParameter(1,password);
List users=query.list();
if(users.size()!=0)
{
User user=(User)users.get(0);
return user;
}
session.close();
return null;
}
}
这是代码
出现这样的错误 yu,yu是用户名密码
代码改成这样后
public User validateUser(String username,String password){
String sql="from user u where u.username=? and u.password=?";
还是出现错误
org.hibernate.hql.ast.QuerySyntaxException: user is not mapped [from user u where u.username=? and u.password=?]
org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181) 展开
import java.util.List;
import org.easybooks.bookstore.dao.*;
import org.easybooks.bookstore.vo.User;
import org.hibernate.*;
public class UserDAO extends BaseDAO implements IUserDAO{
public User validateUser(String username,String password){
String sql=("select * from user where username='"+username+"'and password='"+password+"'");
Session session=getSession();
Query query=session.createQuery(sql);
query.setParameter(0,username);
query.setParameter(1,password);
List users=query.list();
if(users.size()!=0)
{
User user=(User)users.get(0);
return user;
}
session.close();
return null;
}
}
这是代码
出现这样的错误 yu,yu是用户名密码
代码改成这样后
public User validateUser(String username,String password){
String sql="from user u where u.username=? and u.password=?";
还是出现错误
org.hibernate.hql.ast.QuerySyntaxException: user is not mapped [from user u where u.username=? and u.password=?]
org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181) 展开
3个回答
展开全部
你的查询语句是SQL的语句。。而query应该是执行HQL语句的。。把你的查询语句修改成这样:"from User as u where u.username=? and password=?";
因为HQL语句是根据对象影射到数据库表的。
所以User是对象,而不是数据库表的名称
因为HQL语句是根据对象影射到数据库表的。
所以User是对象,而不是数据库表的名称
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空格有问题吧?看看你的单引号跟字母之间的间距!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把user改成User试试from User
追问
现在无法查询了
出现这样的错误
org.hibernate.exception.SQLGrammarException: could not execute query
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'user' 附近有语法错误。
我用的是SQL数据库
追答
呃,这个的详细看看才能知道你哪里错了.正常createQuery需要传一个HQL语句,不是SQL.而HQL里面的字段都是对象形式的.比如所User Sturdent之类的,这个东西得大写,你看看你的映射文件是不是哪写错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询