Java 为便携式数据库应用程序创建数据库jdbc Derby

Java 为便携式数据库应用程序创建数据库jdbc Derby,java,database,jdbc,derby,Java,Database,Jdbc,Derby,类创建文件夹和derby数据库 package Utility_Package; import java.io.File; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

类创建文件夹和derby数据库

package Utility_Package;

import java.io.File;

import java.io.IOException;

import java.util.logging.Level;

import java.util.logging.Logger;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.logging.Level;

import java.util.logging.Logger;




     public class systemSetup {

  String finalDirectory;

String dirName = "Car_washing_System";

Connection con = null;

Statement st = null;

public String url;

// method to create Database in the Folder
 public void createDB(){

 try {
     System.setProperty("derby.system.home",
             dirName+"/dbs");

     try {
         Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

     } catch (ClassNotFoundException ex) {

         Logger.getLogger(systemSetup.class.getName()).log(Level.SEVERE, null, ex);
     }

     con = DriverManager.getConnection(url);

     st = con.createStatement();

     st.executeUpdate("CREATE TABLE CARS(ID INT PRIMARY KEY,"
                + "NAME VARCHAR(30), PRICE INT)");
        st.executeUpdate("INSERT INTO CARS VALUES(1, 'Audi', 52642)");
        DriverManager.getConnection("jdbc:derby:;shutdown=true");

 } catch (SQLException ex) {

  Logger lgr = Logger.getLogger(systemSetup.class.getName());

        if (((ex.getErrorCode() == 50000)
                && ("XJ015".equals(ex.getSQLState())))) {

            lgr.log(Level.INFO, "Derby shut down normally", ex);

        } else {

            lgr.log(Level.SEVERE, ex.getMessage(), ex);
        }

    } finally {

        try {

            if (st != null) {

                st.close();
            }
            if (con != null) {

                con.close();
            }

        } catch (SQLException ex) {

            Logger lgr = Logger.getLogger(systemSetup.class.getName());

            lgr.log(Level.WARNING, ex.getMessage(), ex);
        }
    }
}

// Method to create the folder on the mac if does not exist 

public File createUserDirectory(){

    // Creating the directories for the java desktop application  
    final File homeDir = new File(System.getProperty("user.home"));

    final File dir = new File(homeDir, dirName);

    if (!dir.exists() && !dir.mkdirs()) {  

        finalDirectory = dir.toString();

        url = "jdbc:derby:"+finalDirectory+ "systemDb;user=USER";

        // verify if folder has been created and then check that url is not null
        if(!url.isEmpty()){
createDB();
} else {createUserDirectory();}

}return dir;
}

}
--输出 运行: 构建成功总时间:2秒


问题是文件编译,文件夹创建没有问题,但文件夹下没有创建数据库,请提供帮助

是否创建了derby.log文件?Bryan-是的,derby.log是在我的项目目录下创建的,但不是在程序创建的目录下。数据库也是在与derby.log相同的位置创建的。您的项目目录?Derby引擎通常在它认为是其主目录的目录中创建Derby.log,因此我想知道您控制Derby.system.home属性的尝试是否无效。您是否尝试过使用-Dderby.system.home=/your/dbs运行您的程序,以查看是否效果更好?