【问题标题】:JAVA - SQL SYNTAX ERROR [closed]JAVA - SQL 语法错误 [关闭]
【发布时间】:2015-04-24 18:25:45
【问题描述】:

我正在用 Java 创建一个方法。那是从数据库中检索消息,但我不断收到语法错误。有人可以帮我吗?

public static String retrieveMessages()
{
    PreparedStatement pstmt;
    try
    {
        pstmt = connection.prepareStatement("SELECT * from  tblEmail"
                + "INNERJOIN tblUser "
                +  "ON tblUser.username = tblEmail.`from`"
                +  "WHERE tblUser.username = ?");

        pstmt.setString(1, user.Getuser());
        results = pstmt.executeQuery();

    }
    catch (SQLException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return (results.toString());

}

【问题讨论】:

  • @Masud 会编译,这不是问题。
  • 但我不断收到语法错误”如何发布您遇到的错误,让有同样错误的人在这里找到答案?这也将提高您获得更好答案的机会。
  • @LuiggiMendoza,是的,我的错误..

标签: java mysql jdbc


【解决方案1】:

tblEmailinner 之间以及fromwhere 之间添加空格

pstmt = connection.prepareStatement("SELECT * from  tblEmail "
                                          + "INNER JOIN tblUser "
                                          +  "ON tblUser.username = tblEmail.`from` "
                                          +  "WHERE tblUser.username = ?");

【讨论】:

    【解决方案2】:

    您需要添加空格(INNER 之前和WHERE 之前)。将查询拆分为多行不会将一行的结尾与下一行的开头分开。

        pstmt = connection.prepareStatement("SELECT * from  tblEmail "
                                          + "INNER JOIN tblUser "
                                          +  "ON tblUser.username = tblEmail.`from` "
                                          +  "WHERE tblUser.username = ?");
    

    当你写作时:

                                            "SELECT * from  tblEmail"
                                          + "INNER JOIN tblUser "
    

    同理:

                                            "SELECT * from  tblEmailINNER JOIN tblUser "
    

    【讨论】:

      猜你喜欢
      • 2012-08-05
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      相关资源
      最近更新 更多