2012-06-30 35 views
1

Я искал документы по этой проблеме в течение всего дня, но, похоже, я не могу найти ответ. Я легко нашел базу данных в режиме клиентского сервера (org.apache.derby.jdbc.ClientDriver), но я был замешан в результирующей базе данных во встроенном режиме (org.apache.derby.jdbc.EmbeddedDriver).Как установить derby.database.classpath для запуска Java DB Embedded?

Все, кажется, хорошо, и подключение к базе данных имеет успех, но она всегда дает мне эту ошибку:

java.sql.SQLSyntaxErrorException: Table/View 'APP.TABELJEMBATAN' does not exist.

http://i1263.photobucket.com/albums/ii633/lindafitriani/javadb4.jpg 

существует Моя база данных, смотрите ниже:

http://i1263.photobucket.com/albums/ii633/lindafitriani/javadb1.jpg 
http://i1263.photobucket.com/albums/ii633/lindafitriani/javadb2.jpg 

Вот содержимое моего файла derby.log:

2012-06-30 18:08:34.170 GMT: Booting Derby version The Apache Software Foundation - Apache Derby - 10.5.3.0 - (802917): instance a816c00e-0138-3e94-78a3-000000b35a08 on database directory C:\Users\Linda Fitriani\Documents\NetBeansProjects\Jembatan\Jembatan2

Database Class Loader started - derby.database.classpath=''

http://i1263.photobucket.com/albums/ii633/lindafitriani/javadb3.jpg 

Месторасположение базы данных (справа) ctory), но путь derby.database.classpath был пуст ... Кто-нибудь знает, как это исправить?

Вот мой код:

package jembatan; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
/** 
* 
* @author Linda Fitriani 
*/ 
public class DBConnect { 
     private static Connection conn; 
    private static String url = "jdbc:derby:Jembatan2;create=true;"; 
    private static String user = "APP"; 
    private static String pass = "linda"; 

    public static Connection connect() throws SQLException{ 
     try{ 
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); 
     }catch(ClassNotFoundException cnfe){ 
      System.err.println("Error: ClassNotFoundException"+cnfe.getMessage()); 
     }catch(InstantiationException ie){ 
      System.err.println("Error:InstantiationException"+ie.getMessage()); 
     }catch(IllegalAccessException iae){ 
      System.err.println("Error:IllegalAccessException"+iae.getMessage()); 
     } 

     conn = DriverManager.getConnection(url,user,pass); 
     return conn; 
    } 
    public static Connection getConnection() throws SQLException, ClassNotFoundException{ 
     if(conn !=null && !conn.isClosed()) 
      return conn; 
     connect(); 
     return conn; 

    } 
} 


private void buildData(){ 

      Connection c ; 
      data = FXCollections.observableArrayList(); 
      try{ 
       c = DBConnect.connect(); 
      //SQL FOR SELECTING ALL OF APP.TABELJEMBATAN 
      String SQL = "select * from APP.TABELJEMBATAN"; 
      //ResultSet 
      ResultSet rs = c.createStatement().executeQuery(SQL); 

      /********************************** 
      * TABLE COLUMN ADDED DYNAMICALLY * 
      **********************************/ 

      for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){ 
       //We are using non property style for making dynamic table 
       final int j = i;     
       TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1)); 
       col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){      
        public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {                        
         return new SimpleStringProperty(param.getValue().get(j).toString());       
        }      
       }); 

       tableview.getColumns().addAll(col); 
       col.setMinWidth(200); 
       System.out.println("Column ["+i+"] "); 
      } 

      /******************************** 
      * Data added to ObservableList * 
      ********************************/ 
      while(rs.next()){ 
       //Iterate Row 
       ObservableList<String> row = FXCollections.observableArrayList(); 
       for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){ 
        //Iterate Column 
        row.add(rs.getString(i)); 
       } 
       System.out.println("Row [1] added "+row); 
       data.add(row); 

      } 

      //FINALLY ADDED TO TableView 
      tableview.setItems(data); 
      }catch(Exception e){ 
       e.printStackTrace(); 
       System.out.println("Error on Building Data");    
      } 

     } 
+0

никто хотите ответить, как установить класс класса derby? любая помощь будет очень ценна –

ответ

2

я нашел решение ...

встроенный режим создает базу данных neatbeans каталог установки .. так, я просто указывая на

"jdbc:derby:C:/Users/Linda Fitriani/.netbeans/7.1/derby/databaseJembatan;create=false;" 

поэтому приложение не находит базу данных, базы данных находятся в каталоге установки netbeans.

1

просто убедитесь, что вы добавили create = true в URL-адрес подключения базы данных и убедитесь, что url ссылается на каталог, где находится db Задает путь к классам, который Derby должен использовать при поиске файлов jar в базе данных , убедитесь, что вы добавить DerbyClient.jar в библиотеках проекта

и в следующий раз, когда вы запускаете приложение, вы заметите, что вы не должны запустить сервер снова и при копировании файлов фляги в другое место, убедитесь, что (Lib) каталог с ним

Я надеюсь, что это поможет