public void addUser(String username,String password,String ns)
{    
        try
        {
         System.out.println(username);
         System.out.println(password);
         System.out.println(ns);
        
            Session session = getSession();
            Transaction tr = session.beginTransaction();
            java.sql.Connection con = session.connection();
            Statement stmt=con.createStatement();
            
            System.out.println("bofore");
            
            String queryString = "insert into user(id,password,ns) values('"
             +username+"','"
             +password+"','"
             +ns+"')";
           
            
            ResultSet rs=stmt.executeQuery(queryString);
            System.out.println("after");
            tr.commit();
            session.close();     
        }
        catch (Exception re)
        {
         System.out.println(re);
        }

上述是代码,参数的值依次是13062519612071231 zwx8888888 自主选拔录取生 ,在控制台上一直能输出到bofore,然后就跳过 System.out.println("after");
,执行           catch (Exception re)
        {
         System.out.println(re);
        }
输出java.sql.SQLExcepti on: Can not issue data manipulation statements with executeQuery().  
问题应该在 ResultSet rs=stmt.executeQuery(queryString); 我觉得是String queryString = "insert into user(id,password,ns) values('"
             +username+"','"
             +password+"','"
             +ns+"')";
语句写错了,但不知道怎么改,大家帮帮忙啊~~~~~~~~

解决方案 »

  1.   

    insert语句中的user(id,password,ns)里的三个参数必须与后面的values里的值对应!!!
      

  2.   

    我对应了啊,一一对应的。username就对应着数据库的id.
      

  3.   

    貌似executeQuery里的queryString只能是select语句吧,迩要想insert数据,好像是用save或者其他,迩再看看,应该是这样子的。
      

  4.   

    ResultSet rs=stmt.executeQuery(queryString); 
    这句改为
    stmt.executeUpdate(queryString);
    又不是查询要什么rs
      

  5.   

    谢谢大家,我把它改成execute了,运行成功,谢谢美女,谢谢酷哥!!