日期:2014-05-17  浏览次数:20706 次

关于List的问题。。

public class UserDao extends BaseDao implements IUserDao {

@Override
public User1 validateUser(String username, String password) {
System.out.println(username+"  xx  "+password);
// TODO Auto-generated method stub
String sql="FROM USER1 U WHERE U.USERNAME=? AND U.PASSWORD=?";
Session session=getSession();
Query query=session.createSQLQuery(sql);//
query.setParameter(0, username);
query.setParameter(1, password);
List<User1> users=query.list();
if(users.size()!=0)
{
User1 user=(User1)users.get(0);
return user;
}
session.close();
return null;
}
}


执行到List<User1> users=query.list();的时候出错,看不出来哪边有问题啊。。
SSH;Hibernate;List

------解决方案--------------------
我怎么看你这个sql语法不对啊??

String sql="SELECT * FROM USER1 U WHERE U.USERNAME=? AND U.PASSWORD=?";

------解决方案--------------------
这种写法有问题,你写的:
String sql="FROM USER1 U WHERE U.USERNAME=? AND U.PASSWORD=?";
HQL不是HQL,hql应该把USER1改为你的java中对应的User类型的类名,后面跟的也是类里对应的字段名,大小写保持一致。
你下面用的是createSQLQuery,这是创建的sql查询
你传给它的应该是sql,那你应该写成:String sql="SELECT U.* FROM USER1 U WHERE U.USERNAME=? AND U.PASSWORD=?";