我有一个使用嵌入式数据库机制的桌面程序。用户第一次执行程序时,必须创建一个数据库。这样,下次有数据库时就不需要创建它了。
如何检查是否有数据库并在必要时创建它?
Use the create=true
attribute in the JDBC URL, like this:
Connection conn = DriverManager.getConnection("jdbc:derby:sampleDB;create=true");
See the Apache Derby Reference Manual:
create=true attribute
Creates the standard database specified within the database connection URL Derby system and then connects to it. If the database cannot be created, the error appears in the error log and the connection attempt fails with an SQLException indicating that the database cannot be found.
If the database already exists, creates a connection to the existing database and an SQLWarning is issued.
You probably have to catch the SQLWarning
(this is an exception) but you could safely ignore it.
我将创建数据库作为安装脚本的一部分,这样您就可以一直指望它在那里。
好的,但是如何做到这一点才能在任何平台上运行呢?
如果您使用的是 Derby 和 Java,它将适用于所有平台。您只需编写不同的安装脚本:.bat 或 .cmd 用于 Windows,.sh 用于 Linux 和 Mac。不会太费劲。
可能有一种方法可以检查是否有一个,如果没有创建它?
尝试建立 JDBC 连接。如果失败,则执行 DDL SQL。