SQL错误或缺少数据库(接近“。”:语法错误)

时间:2017-05-14 01:54:48

标签: java sqlite

SQL错误或缺少数据库(靠近“。”:语法错误)

public ArrayList<String> SelectCOMMUNE(String nom_wilaya,String nom_daira) 
{
    ArrayList<String> commune = new ArrayList<>();
    try {

        String value;
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:C:/Users/Khaled/Documents/NetBeansProjects/PFE/dataBase.db");
        c.setAutoCommit(false);
        stmt = c.createStatement();
        try (ResultSet rs = stmt.executeQuery("SELECT NOM_COMMUNE FROM COMMUNE NATURAL JOIN DAIRA"
                + "NATURAL JOIN WILAYA"
                + "WHERE DAIRA.NOM_DAIRA= \""+nom_daira+"\" AND WILAYA.NOM_WILAYA=\""+nom_wilaya+"\";")) {
            while (rs.next()) {
                value = rs.getString("NOM_COMMUNE");
                System.out.println(rs.getString("NOM_COMMUNE"));
                commune.add(value);
            }
        }
        stmt.close();
        c.close();
    } catch (ClassNotFoundException | SQLException e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }
    return commune;
}

1 个答案:

答案 0 :(得分:0)

将字符串分成单独的行时,您缺少空格。养成在连接的字符串片段前面添加空格的习惯。

ResultSet rs = stmt.executeQuery("SELECT NOM_COMMUNE FROM COMMUNE NATURAL JOIN DAIRA"
            + " NATURAL JOIN WILAYA"
            + " WHERE DAIRA.NOM_DAIRA= \""+nom_daira+"\" AND WILAYA.NOM_WILAYA=\""+nom_wilaya+"\";"))

与您的问题无关,但仍然很重要 - 查看准备好的语句,以避免代码中出现一些令人讨厌的SQL注入漏洞。