JAVA - SQL 语法错误

JAVA - SQL SYNTAX ERROR

我正在 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());

}

您需要添加空格(在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 "

tblEmailinner之间以及fromwhere

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