关于List的问题。。

Mr_Curiosity_ 2013-11-07 08:36:38

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();的时候出错,看不出来哪边有问题啊。。
...全文
585 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
perfect_means_shit 2013-11-10
  • 打赏
  • 举报
回复
hibernate 中createQuery与createSQLQuery两者区别是: 前者用的hql语句进行查询,后者可以用sql语句查询 前者以hibernate生成的Bean为对象装入list返回 后者则是以对象数组进行存储
风程序 2013-11-10
  • 打赏
  • 举报
回复
你还是好好理解什么是HQL查询 和什么是SQL查询吧
小林_sxxzlt 2013-11-08
  • 打赏
  • 举报
回复
在后台应该可以显示查询的sql语句的,你看看你sql语句的问题吧。
seqwait 2013-11-08
  • 打赏
  • 举报
回复
把错误贴出拉嘛
小菜_ 2013-11-08
  • 打赏
  • 举报
回复
你用的是hql。
lgx06 2013-11-08
  • 打赏
  • 举报
回复
换成下面的试下: String sql="FROM USER1 U WHERE U.USERNAME=:arg1 AND U.PASSWORD=:arg2"; Session session=getSession(); Query query=session.createQuery(sql);// query.setString("arg1", username); query.setString("arg2", password); List<User1> users=query.list();
快乐的小呆 2013-11-08
  • 打赏
  • 举报
回复
引用
createSQLQuery(sql)
这个方法只支持原生sql语句,而你的语法是HQL语法。
别闹腰不好 2013-11-08
  • 打赏
  • 举报
回复
Query query=session.createSQLQuery(sql); 这个方法是传原生SQL的,不能传HQL. createQuery(); 传HQL的 ,有点乱啊
别闹腰不好 2013-11-08
  • 打赏
  • 举报
回复
query.setParameter(0, username); query.setParameter(1, password); 都有值吗 USER1 是映射的类名吗 类名应该不是这么写的 。此处不是表名。
  • 打赏
  • 举报
回复
session.createSQLQuery(sql)
观鱼塘主 2013-11-08
  • 打赏
  • 举报
回复
7楼正解
yizhaorong 2013-11-08
  • 打赏
  • 举报
回复
这种写法有问题,你写的: 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=?";
sca4441479 2013-11-08
  • 打赏
  • 举报
回复
楼上正解,调用原生sql方法,而你却传的是hql语句。
C-J 2013-11-07
  • 打赏
  • 举报
回复

query.setParameter(0, username);
query.setParameter(1, password);
换成

query.setParameter(1, username);
query.setParameter(2, password);
从1开始看看
tkg082 2013-11-07
  • 打赏
  • 举报
回复
try...catch...
乔不思 2013-11-07
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
我怎么看你这个sql语法不对啊??

String sql="SELECT * FROM USER1 U WHERE U.USERNAME=? AND U.PASSWORD=?";
版主 好像 CreatesqlQuery支持sql与支持hql?压力好大
乔不思 2013-11-07
  • 打赏
  • 举报
回复
hql查询? 为什么不用 createQuery(); 而用的 是createSQLQuery()?
乔不思 2013-11-07
  • 打赏
  • 举报
回复
看你的 类名写对这没。。。
cnlhnh 2013-11-07
  • 打赏
  • 举报
回复
SQL语法不对
teemai 2013-11-07
  • 打赏
  • 举报
回复
我怎么看你这个sql语法不对啊??

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

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧