2

次のエラーが発生し続けます。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 
You have an error in your SQL syntax; check
the manual that corresponds to your MySQL server version for 
the right syntax to use near '= 3' at line 1

コード全体を確認しましたが、この時点で呼び出されている SQL 関数は 2 つしかなく、このエラーを引き起こす可能性があります。

  1. 読んだ

    public void Read (String userName) /*have checked validity*/
    try {
        con = getConnection();
    
        PreparedStatement pstmt = con.prepareStatement("SELECT * FROM " + 
                                  tableName + 
                                 " WHERE userName=?");
    
            pstmt.setString(1,userName);
    
        ResultSet rs = pstmt.executeQuery();
    
        User user;
        PrintQuery(rs);
        rs.close();
        pstmt.close();
        releaseConnection(con);
        return user;
    
    }
    
  2. GetItem

     public void getItem(int userid) /*have checked validity*/
     try {
        con = getConnection();
    
        Statement stmt = con.createStatement();
    
        PreparedStatement pstmt = con.prepareStatement("SELECT * FROM " 
                                  + tableName +"WHERE UserId=?");
        pstmt.setInt(1,userid);
        rs = pstmt.executeQuery();
        PrintQuery(rs);
        stmt.close();
        releaseConnection(con);
    
    }
    

私は今、これらに何時間も悩まされており、解決できません。これらの引数が null などであるかどうかを再確認しましたが、そうではありません。実際、それらはすべてデータベースに適切に存在しています。どこが間違っているのかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

6

tableName と句GetNameの間の連結中に余分なスペースが不足しているため、エラーが発生していますWHERE

+ tableName +" WHERE UserId=?");
           // ^ add extra space here
于 2013-03-13T01:50:31.010 に答える