【问题标题】:SQLite queries not doing anythingSQLite 查询不做任何事情
【发布时间】:2020-10-07 18:09:09
【问题描述】:

我正在尝试将 sqlite 数据库与我的 javafx 应用程序一起使用,但是当我对它执行任何操作时,数据库上没有任何反应,并且我没有收到任何错误...

主要:

public void start(Stage primaryStage) throws IOException {
    Main.primaryStage = primaryStage;
    primaryStage.setTitle("Welcome to ServerDashboard");
    primaryStage.setOnCloseRequest(event -> {
        event.consume();
        onClose();
    });

    MainConfig.load();
    DatabaseController.createNewDatabase("data.db");

    MainMenu.show(primaryStage);
}

数据库控制器:

public class DatabaseController {
public static void createNewDatabase(String fileName) {

    String url = "jdbc:sqlite:" + fileName;

    String sql = "CREATE TABLE IF NOT EXISTS warehouses (\n"
            + " id integer PRIMARY KEY,\n"
            + " name text NOT NULL,\n"
            + " capacity real\n"
            + ");";

    try (Connection conn = DriverManager.getConnection(url)) {
        if (conn != null) {
            DatabaseMetaData meta = conn.getMetaData();
            System.out.println("The driver name is " + meta.getDriverName());
            System.out.println("The file was created in : " + new File("").getAbsolutePath() + "\\" + fileName);
            System.out.println("A new database has been created.");

            Statement stmt = conn.createStatement();
            stmt.execute(sql);

            System.out.println("A new table has been created");

        }

    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
}

} 输出:

The driver name is SQLite JDBC
The file was created in : N:\Code\Minecraft Java\ServerDashboard\data.db
A new database has been created.
A new table has been created

我尝试了所有能找到的教程,但似乎没有一个有用...

【问题讨论】:

  • 我不认为你想要 sql 中的“\n”。 From the tutorial: String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES";
  • @mcalex 我试过也没有它也不起作用
  • 也许尝试一个没有空格的目录(即不是“Minecraft Java”)。看起来你传递了一个相对的fileName,尝试传递绝对引用。会发生什么? db文件是否被修改过?是否有现有的仓库表?尝试显示您发现了哪些诊断信息。

标签: java sqlite


【解决方案1】:

我有一个建立 sqlite 连接的小项目,也许它可以帮助你找到你的错误。如果不尝试调试隔离查询语句的脚本。它总是有帮助的。

https://github.com/saaimons/Java/tree/master/pyMultas_SQLite3

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多