/**
     * 根据用户名,密码查找用户
     * @param username 查询所需的用户名
     * @param pass 查询所需的密码
     * @return 对应的用户
     */ 
    public User findUserByNameAndPass(String username , String password)
    { 
     String[] args={username,password};
        List ul = getHibernateTemplate().find("from User au where au.username = ? and au.password= ?" , args);
        if (ul.size() == 1)
        {
            return (User)ul.get(0);
        }
        return null;
    }
以上是我dao里面的代码
数据库为sql server 2005
运行提示错误could not execute query; SQL [select user0_.id as id0_, user0_.username as username0_, user0_.password as password0_ from dbo.user user0_ where user0_.username=?]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
不知道是hql问题还是配置问题还是什么问题数据库连接已打开,配置信息如下
 <bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://localhost:1433;databaseName=Login">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123456"></property>
</bean>
各位大侠帮忙吧!!!

解决方案 »

  1.   

    你这个报的错是语法错了,我觉得应该是配置数据库的信息出了问题,因为我不是用这数据库,对这不怎么熟悉,给你找了个,只是oracle的,你可以参考下http://zhidao.baidu.com/question/265450964.html&__bd_tkn__=76bc53377c259e304a00be6ca8fd33b99a11d7a68078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157a5af8369867a0fe5a0f03de01252778a734b07b32759a740c2bca89db38340f05203320bc617f403db0abafeb7e8eaccbdc8d0cca322af44ba9
      

  2.   

      public User findUserByNameAndPass(String username , String password)
      { 
      String[] args={username,password};
      List ul = getHibernateTemplate().find("from User au where au.username = ? and au.password= ?" , args);
      if (ul.size() == 1)
      {
      return (User)ul.get(0);
      }
      return null;
      }楼主把hql语法改一下,提示的语法不对:
    你这么写:
     List ul = getHibernateTemplate().find("from User au where au.username = '"+username+ "' and au.password= '"+ password + "'" );
     String[] args={username,password};  这句可以不用写。
      

  3.   

    #3的是一种方法我想如果find()这个方法传入的可能不是String[]吧?应该是Object[]吧?
      

  4.   

    你用的是hibernate的hql怎么能没有query那   Person