我正在編寫一個應(yīng)用程序,它有一個數(shù)據(jù)訪問層來抽象與 SQLITE3 或 MySQL 數(shù)據(jù)庫的底層連接。感謝昨天這里的一些幫助,我向我展示了如何使用進(jìn)程構(gòu)建器使用輸出重定向?qū)⒚钚袑?dǎo)入運行到 SQLITE3 數(shù)據(jù)庫中?,F(xiàn)在我試圖通過導(dǎo)入轉(zhuǎn)儲文件在 MySQL 中創(chuàng)建相同的數(shù)據(jù)庫。從命令行客戶端加載工作正常。我只是告訴它獲取文件,然后成功創(chuàng)建了數(shù)據(jù)庫。但是,我試圖在運行時通過代碼執(zhí)行此操作,而我執(zhí)行 SQL 語句的方法無法執(zhí)行源命令。我懷疑這是因為“源”不是 SQL,但我不知道還有什么可以用來嘗試運行它。我的錯誤信息是:java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source /tmp/ISMCoreActionPack_mysql.sql' at line 1失敗的命令字符串:source /tmp/ISMCoreActionPack_mysql.sql;我的方法是:public Boolean executeSqlStatement(String sql) { Boolean rc = false; try { Connection connection = getConnection(); Statement statement = connection.createStatement(); rc = statement.execute(sql); connection.close(); } catch (SQLException e) { e.printStackTrace(); System.err.println(e.getClass().getName() + ": " + e.getMessage()); System.exit(1); } return rc;}誰能建議如何做到這一點?
2 回答

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
您不能運行 'source' 命令,因為 JDBC 驅(qū)動程序不支持它,只有 MySQL。
我給你的建議如下。編寫一些解析器,從文件中讀取查詢,并使用 JDBC 語句執(zhí)行它們。
添加回答
舉報
0/150
提交
取消