Sql 如何让java应用程序在main方法中一次性创建一个表

Sql 如何让java应用程序在main方法中一次性创建一个表,sql,jdbc,derby,Sql,Jdbc,Derby,这就是我正在使用的代码,本质上,如果表还不存在,我希望执行createStatement(),但如果它存在,则继续。我不确定如何引用源代码中创建的表。更好(但更复杂)的方法是使用数据库迁移库,如Flyway或Liquibase。您还可以检查数据库是否具有条件DDL,或者可以参考DatabaseMetaData(特别是getTables)检查表是否存在。您可以(a)在尝试创建表之前检查表是否已存在。或者,(b)尝试创建表,并捕获“表已存在”异常。你有理由选择其中一个吗?相应地更新您的问题,人们可以

这就是我正在使用的代码,本质上,如果表还不存在,我希望执行createStatement(),但如果它存在,则继续。我不确定如何引用源代码中创建的表。

更好(但更复杂)的方法是使用数据库迁移库,如Flyway或Liquibase。您还可以检查数据库是否具有条件DDL,或者可以参考
DatabaseMetaData
(特别是
getTables
)检查表是否存在。您可以(a)在尝试创建表之前检查表是否已存在。或者,(b)尝试创建表,并捕获“表已存在”异常。你有理由选择其中一个吗?相应地更新您的问题,人们可以更准确地提出改进建议。这非常有效,我只是在寻找“更好”的想法,或者在处理数据库时,寻找一种更“标准”的方法。听起来我已经在想的很多事情是处理这个问题的最好方法。这对be有效,我将在代码中捕获异常。
public static void main(String[]args) throws ClassNotFoundException, SQLException {
    Class.forName(DRIVER);
    Connection connection = DriverManager.getConnection(JDBC_URL);
    connection.createStatement().execute("create table questions(grade varchar(20), subject varchar(20), question varchar(20), A varchar(1), B varchar(1), C varchar(1), D varchar(1))");