簡體   English   中英

桌面應用中的數據庫使用swing

[英]database in desktop application using swing

我在java中制作桌面應用程序並在數據庫中使用MSAccess。 我希望如果我運行應用程序的設置,應該在客戶端計算機上創建數據庫,因為可以有不同的客戶端使用該應用程序,我如何創建設置? 有免費的工具嗎? 請詳細解釋我..謝謝

Java 6(針對桌面應用程序工作進行了增強)附帶了一個名為JavaDb (以前稱為IBM的Derby)的內置數據庫。 這將做你想要的。

這里有一套關於如何使用它的指南和教程。

我建議,當您的應用程序首次啟動時,它會檢查是否存在已創建的數據庫,如果它不存在,則會構建數據庫(通過適當的SQL)。 我之前使用過這種方法,效果很好。

我更喜歡nullsoft 看看Java中的開源安裝程序生成器

@pratap:應該在客戶機上創建數據庫..

將空訪問數據庫添加到您的設置中。

看看Mozilla使用的SQLite (Firefox將所有書簽和歷史存儲在數據庫中)和其他幾個主要應用程序。

當你說

訪問數據庫

是指Microsoft Access還是訪問數據庫中的數據。

如果是這種情況,我會建議不要使用MS Access。 如果沒有,您可以使用JavaDB或HSQLDB並使用SQL腳本來創建數據庫。 作為總結

  1. 將應用程序打包到其中一個安裝程序中(InnoSetup或NSIS是好的)
  2. 安裝時,將所有文件解壓縮到適當的文件夾中
  3. 在首次運行應用程序之前執行SQL腳本以確保數據庫已設置,您可以執行其他內務處理任務以及此步驟(有關安裝后步驟,請參閱安裝程序文檔)
  4. 你的申請很好

在我使用的NetBeans的最后一個發行版中,有一個向導來創建這樣的應用程序。 該應用程序使用Java Persistence API來存儲數據。

我的選擇是HSQLDB,因為它快速,可靠且易於使用。

在文檔中,它解釋了如何使用獨立數據庫模式,這主要用於單元測試,但它也適合您的情況。 這樣做的好處是您只需連接到基於文件的數據庫而無需任何特殊設置,如果文件不存在,則會創建它們。

我會推薦推薦JavaDB的海報。

從應用程序內部管理是非常容易的。 更重要的是因為一切都是原生Java你不會得到char-> unicode little-endian-> big-endien以及你在將SQL讀入java時通常得到的所有其他轉換malarky。

一個提示是,JavaDB正在准備您的SQL語句。 准備好的語句被緩存,並且生成的訪問程序(類似於訪問計划,但實際上是一個jvm程序)被重用,“執行”語句的程序不會被緩存。

如果您真的設置了MSAccess,那么我建議您打包一個“default.mdb”文件,其中定義了所有必需的表,並填充了分類表。 如果用戶的表不存在,則只需復制默認的.mdb文件並打開它。

我推薦使用H2數據庫,因為它簡單,快速,純Java,而且很小。 請參閱此頁面了解H2如何與其他Java數據庫進行比較,包括其他答案中提到的數據庫。 它有許多功能Derby / JavaDB和HSQLDB沒有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM