我有一个使用嵌入式数据库机制的桌面程序。用户第一次执行程序时,必须创建一个数据库。这样,下次有一个数据库,就没有必要创建它了。
如何检查是否有数据库并在必要时创建它?
答案 0 :(得分:5)
使用JDBC URL中的create=true
属性,如下所示:
Connection conn = DriverManager.getConnection("jdbc:derby:sampleDB;create=true");
请参阅Apache Derby Reference Manual:
create = true attribute
创建在数据库连接URL Derby系统中指定的标准数据库,然后连接到该数据库。如果无法创建数据库,则错误日志中将显示错误,并且连接尝试失败,并显示SQLException,指示无法找到数据库。
如果数据库已存在,则创建与现有数据库的连接,并发出SQLWarning。
您可能需要捕获SQLWarning
(这是一个例外),但您可以放心地忽略它。
答案 1 :(得分:1)
我正在创建安装脚本的数据库部分,因此您可以始终指望它在那里。
好的,但如何做到这一点 在任何平台上工作?
如果您使用的是Derby和Java,它将适用于所有平台。您只需要编写不同的安装脚本:Windows的.bat或.cmd,Linux和Mac的.sh。不太费劲。
可能有 一种检查是否存在的方法 没有创造它?
尝试建立JDBC连接。如果失败,请执行DDL SQL。