Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL错误或缺少数据库(靠近“.”:语法错误)_Java_Sqlite - Fatal编程技术网

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

Java SQL错误或缺少数据库(靠近“.”:语法错误),java,sqlite,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");

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;
}

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

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注入漏洞。

我没有看到c的声明?它是连接c;上面的代码不包括它。请编辑它以便于阅读。让我们尝试使用\\而不是像这样编辑数据库的路径:jdbc:sqlite:C:\\Users\\Khaled\\Documents\\NetBeansProjects\\PFE\\dataBase.db检查实际执行的SQL的语法。您的代码生成的SQL中的关键字之间似乎会有一些空格。另外。。。在SQL中对字符串使用单引号的兼容性更广泛。