主要是这里啊/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.jhkj.struts.action;import java.util.Iterator;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.jhkj.HibernateSessionFactory;
import com.jhkj.Userlist;/** 
 * MyEclipse Struts
 * Creation date: 06-22-2007
 * 
 * XDoclet definition:
 * @struts.action validate="true"
 */
public class LoginAction extends Action {
/*
 * Generated Methods
 */ /** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
//获取提交的用户名称和密码
String userName=request.getParameter("userName");
String userPwd=request.getParameter("userPwd");
System.out.println("用户名"+userName+"密码"+userPwd);
String mUserPwd=null;
Userlist ul=null;
//创建连接
Session session=HibernateSessionFactory.getSession();
//创建事务
Transaction tx=session.beginTransaction();
//创建对话
Query query=session.createQuery("select u from Userlist as u where username='" +
userName + "'");
try{
// Iterator it = query.iterate();
// ul = (Userlist) it.next();
// mUserPwd=ul.getUserpwd();
    Userlist uk=(Userlist)query.uniqueResult(); 
    mUserPwd=uk.getUserpwd();
}catch (Exception e) {
System.out.println("异常信息:"+e.getMessage());
}
if(userPwd.equals(mUserPwd))
request.setAttribute("loginOk","Hello  " + ul.getUsername());
else
request.setAttribute("loginOk","Login Error!");
//事务提交
tx.commit();
//关闭连接
HibernateSessionFactory.closeSession();
return mapping.findForward("success");
}
}
// Iterator it = query.iterate();
// ul = (Userlist) it.next();
// mUserPwd=ul.getUserpwd();用上面这个获得密码报
could  not execute query using iterate
这个错误
查了好多资料用这个拉
    Userlist uk=(Userlist)query.uniqueResult(); 
    mUserPwd=uk.getUserpwd();
可是又报这个错误
could  not execute query我真的解决不了拉 啊!
帮我下!

解决方案 »

  1.   

    配制文件和HibernateSessionFactory是怎么写的?该用的JAR包都放到LIB下了吗
      

  2.   

    package com.jhkj;import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.cfg.Configuration;/**
     * Configures and provides access to Hibernate sessions, tied to the
     * current thread of execution.  Follows the Thread Local Session
     * pattern, see {@link http://hibernate.org/42.html }.
     */
    public class HibernateSessionFactory {    /** 
         * Location of hibernate.cfg.xml file.
         * Location should be on the classpath as Hibernate uses  
         * #resourceAsStream style lookup for its configuration file. 
         * The default classpath location of the hibernate config file is 
         * in the default package. Use #setConfigFile() to update 
         * the location of the configuration file for the current session.   
         */
        private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
        private  static Configuration configuration = new Configuration();
        private static org.hibernate.SessionFactory sessionFactory;
        private static String configFile = CONFIG_FILE_LOCATION; static {
         try {
    configuration.configure(configFile);
    sessionFactory = configuration.buildSessionFactory();
    } catch (Exception e) {
    System.err
    .println("%%%% Error Creating SessionFactory %%%%");
    e.printStackTrace();
    }
        }
        private HibernateSessionFactory() {
        }

    /**
         * Returns the ThreadLocal Session instance.  Lazy initialize
         * the <code>SessionFactory</code> if needed.
         *
         *  @return Session
         *  @throws HibernateException
         */
        public static Session getSession() throws HibernateException {
            Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) {
    if (sessionFactory == null) {
    rebuildSessionFactory();
    }
    session = (sessionFactory != null) ? sessionFactory.openSession()
    : null;
    threadLocal.set(session);
    }        return session;
        } /**
         *  Rebuild hibernate session factory
         *
         */
    public static void rebuildSessionFactory() {
    try {
    configuration.configure(configFile);
    sessionFactory = configuration.buildSessionFactory();
    } catch (Exception e) {
    System.err
    .println("%%%% Error Creating SessionFactory %%%%");
    e.printStackTrace();
    }
    } /**
         *  Close the single hibernate session instance.
         *
         *  @throws HibernateException
         */
        public static void closeSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            threadLocal.set(null);        if (session != null) {
                session.close();
            }
        } /**
         *  return session factory
         *
         */
    public static org.hibernate.SessionFactory getSessionFactory() {
    return sessionFactory;
    } /**
         *  return session factory
         *
         * session factory will be rebuilded in the next call
         */
    public static void setConfigFile(String configFile) {
    HibernateSessionFactory.configFile = configFile;
    sessionFactory = null;
    } /**
         *  return hibernate configuration
         *
         */
    public static Configuration getConfiguration() {
    return configuration;
    }}
    这个是自动生成的好像我都没改过,。包都方lib下拉,谢谢楼上关注
      

  3.   

    //创建对话
    Query query=session.createQuery("select u from Userlist as u where username='" +
    userName + "'");select u from Userlist as u
    这句没问题吗?感觉怪怪D.
      

  4.   

    应该这样子吧select u as u  from Userlist
      

  5.   

    可以的我都下拉好多视频!例子都是这么写的
    //创建对话
    Query query=session.createQuery("select u from Userlist as u where username='" +
    userName + "'");select u as u  from Userlist
    我看下这个大家还继续给我指导哈!
      

  6.   

    Query query=session.createQuery("select u as u  from Userlist where username='" +
    userName + "'");
    这样写都不能查拉
    javax.servlet.ServletException: No data type for node: org.hibernate.hql.ast.tree.IdentNode 
     \-[IDENT] IdentNode: 'u' {originalText=u} org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  7.   

    Iterator it = query.list().iterate();
      

  8.   

    楼上的我44
    能不能讲讲你们的hibernate经验啊
      

  9.   

    我看的例子都是导的这几个
    import net.sf.hibernate.HibernateException;
    import net.sf.hibernate.Query;
    import net.sf.hibernate.Session;
    import net.sf.hibernate.Transaction;
    包!我做这个杂都导入的这几个
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    包对不对啊!
      

  10.   

    yhkyo() ( ) 信誉:100    Blog   加为好友  2007-06-22 18:37:15  得分: 0  
     
     
       我是初学者
      
     
    =====================
    我也是啊交流下啊,你做过例子没啊?
      

  11.   

    Iterator it = query.list().iterate();
      
    这样写也不行啊,呵呵我还是不行啊!
      

  12.   

    javax.servlet.ServletException
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    com.jhkj.struts.action.AddAction.execute(AddAction.java:51)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  13.   

    AddAction.java:51这个地方空指针了