Java bluej,连接mysql,但不连接derby

Java bluej,连接mysql,但不连接derby,java,connection,derby,Java,Connection,Derby,我有以下项目。我在mysql和derby中加载了相同的数据库。我可以连接到mysql,但当我尝试连接到derby时,会收到以下错误消息: java.sql.SQLException: Failed to start database 'school' with class loader sun.misc.Launcher$AppClassLoader@b4aac2, see the next exception for details. 代码如下: dbconnect.java: packa

我有以下项目。我在mysql和derby中加载了相同的数据库。我可以连接到mysql,但当我尝试连接到derby时,会收到以下错误消息:

java.sql.SQLException: Failed to start database 'school' with class loader 
sun.misc.Launcher$AppClassLoader@b4aac2, see the next exception for details.
代码如下:

dbconnect.java:

package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {
    private static final String USERNAME = "rss";
    private static final String PASSWORD = "westerly";


    public static Connection getConnection(String driver, String database) 
    throws SQLException{
        String URL;
        switch (driver) {
            case "mysql":
                URL ="jdbc:" + driver + "://localhost:3306/" + database + "? 
                      useSSL=false";
                System.out.println(URL);
                return DriverManager.getConnection(URL, USERNAME, PASSWORD);
            case "derby":

                URL = "jdbc:derby:" + database ;
                System.out.println(URL);
                return DriverManager.getConnection(URL);

            default:
                System.out.println("only use mysql or derby");
                System.exit(0);
                return null;                
        }
    }
dbselect.java:

package db;

import java.lang.reflect.Method;
import tables.students;
import tables.teacher;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;


public class DBSelect {
    static String driver;
    static String database;
    static String table;


    public static void main(String[] args) throws SQLException  {
        table = "students";
       try(Connection con = DBConnection.getConnection(driver="derby",database="school");
             Statement stmt = 
                con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                ResultSet.CONCUR_UPDATABLE);
             ResultSet rs1 = stmt.executeQuery("select * from " + table);
            )
        {  
            students.getStudents(rs1);
            ResultSet rs2 = stmt.executeQuery("select * from teacher");
            System.out.println("");
            teacher.getTeacher(rs2);

            rs2.first();

            try
            {rs2.getInt("fee");
              System.out.println("found");
              stmt.executeUpdate("alter table teacher drop fee  ");
            }catch(SQLException e)
            {
                System.out.println("not found");
                System.err.print(e);
                stmt.executeUpdate("alter table teacher add fee int ");
            } 


        } catch (SQLException e) {
            System.err.print(e);

        }  
    }    
}

假设derby数据库存在(如果不存在,请修改JDBCURL以包含“创建”选项:
jdbc:derby:derbyDB;create=true

--从syserr更改为printstacktrace以获取更多信息:

最简单的情况:您已经有一个java实例在运行,它已经锁定了DB

奇怪的情况:“日志”目录丢失


最坏情况:数据库已损坏。

谢谢。问题在于derby.jar的不同版本
    } catch (SQLException e) {
        e.printStackTrace();
    }