Java db架构不存在(netbeans 7)

Java db架构不存在(netbeans 7),java,derby,javadb,Java,Derby,Javadb,我使用NetBeans7服务创建了一个JavaDB数据库,我使用java嵌入式驱动程序连接到JavaDB。 我可以在java数据库的连接下找到我的数据库,在名为ROOT的模式下 这是我的java db连接名称: jdbc:derby:AddressBook [root on ROOT] 但是,当我尝试在我的项目中使用该模式时,我得到一个异常 Caused by: ERROR 42Y07: Schema 'ROOT' does not exist at org.apache.derby.

我使用NetBeans7服务创建了一个JavaDB数据库,我使用java嵌入式驱动程序连接到JavaDB。 我可以在java数据库的连接下找到我的数据库,在名为ROOT的模式下

这是我的java db连接名称:

jdbc:derby:AddressBook [root on ROOT]
但是,当我尝试在我的项目中使用该模式时,我得到一个异常

Caused by: ERROR 42Y07: Schema 'ROOT' does not exist
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unknown Source)
                       .....
错误将在select语句中出现。我应该怎么做才能使它在项目中可读

这是我的代码:

private static final String URL = "jdbc:derby:AddressBook";
   private static final String USERNAME = "root";
   private static final String PASSWORD = "cs101";

   private Connection connection = null; // manages connection
   private PreparedStatement selectAllPeople = null; 
   private PreparedStatement selectPeopleByLastName = null; 
   private PreparedStatement insertNewPerson = null; 

   // constructor
   public PersonQueries()
   {
      try 
      {
         connection = 
            DriverManager.getConnection( URL, USERNAME, PASSWORD );

         // create query that selects all entries in the AddressBook
         selectAllPeople = 
            connection.prepareStatement( "SELECT * FROM ROOT.Addresses" )

在创建连接之前,请尝试输入此代码

Class.forName("org.apache.derby.jdbc.ClientDriver")

当使用嵌入式derby时,nb已将db放置在特定位置。在my NB 7.2中,安装默认为:C:\Users\James.netbeans-derby。您需要通过设置derby home属性来确保应用程序正在读取相同的db文件:

System.setProperty("derby.system.home", "C:\Users\James\.netbeans-derby");
或者像这样:

System.setProperty("derby.system.home", 
    System.getProperty("user.home")+".netbeans-derby");

祝你好运

从Derby数据库的属性中获取完整的URL,并获取连接以解决问题

尝试
地址
而不是
根地址。地址
。地址是我的首字母,但后来我将其改为根地址。地址希望它更可能读取嵌入的驱动程序,而不是客户端驱动程序,因为原始帖子中的URL语法是嵌入语法,而不是客户端语法。