Java数据库模式不存在(netbeans 7)

时间:2012-02-09 16:04:44

标签: java derby javadb

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

这是我的java数据库连接名称:

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" )

3 个答案:

答案 0 :(得分:2)

在创建连接之前尝试放置此代码

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

答案 1 :(得分:0)

使用嵌入式derby时,nb已将数据库放在特定位置。在我的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");
祝你好运!

答案 2 :(得分:0)

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