2016-10-19 7 views
0

私はJavaに従っています:プログラム方法 - 第24章この章では、Javaでのデータベース実装について説明します。私は "Derby"をセットアップするための手順を踏んだが、エラーjava.sql.SQLException: Database 'books' not found.が出る。MacOSでDerbyを設定するSierra

$ PATHに$ DERBY_HOMEが含まれていることを確認しました。 $ DERBY_HOMEは正しいフォルダ(/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/db)を指しています。

私は$ JAVA_HOMEをチェックし、正しく設定されています(/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home)。

私はツールijを使用することができ、セットアップされているデータベースが表示されます。私はderby.jarをeclipseのパッケージに追加しました。次のコードは本のコードですが、コンパイルするとエラーが発生しますjava.sql.SQLException: Database 'books' not found.

私はオンラインで調べましたが、私が//localhost:1527/booksを追加するという推奨事項がありました。しかし、私が追加した場合、私はjava.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/booksエラーが発生します。

Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();を使用しても問題は解決しないという提案もありました。

books.sqlデータベースは、ソースコードを含むパッケージと同じパッケージにコピーして貼り付けました。

誰かがこの問題を解決する方法を知っていますか?私はMacOS Sierraを実行しています。

public class DisplayAuthors { 

    public static void main(String [] args) { 
     final String DATABASE_URL = "jdbc:derby:books"; 
     final String SELECT_QUERY = "Select authorID, firstName, lastName from authors"; 


     try( 
       Connection connection = DriverManager.getConnection(
       DATABASE_URL, "deitel", "deitel"); 
       Statement statement = connection.createStatement(); 
       ResultSet resultSet = statement.executeQuery(SELECT_QUERY)){ 

      ResultSetMetaData metaData = resultSet.getMetaData(); 
      int numberOfCols = metaData.getColumnCount(); 

      System.out.printf("Authors of table of Books databse:%n%n"); 
      for(int i = 0; i < numberOfCols; i++) 
       System.out.printf("%-8s\t",metaData.getColumnName(i)); 

      System.out.println(); 

      while(resultSet.next()){ 
       for (int i = 1; i <= numberOfCols; i++) 
        System.out.printf("%-8s\t",resultSet.getObject(i)); 
        System.out.println(); 
      } 

     }catch(SQLException ex){ 
      ex.printStackTrace(); 
     } 
    } 
} 
+0

これはコードの問題ではありません。あなたはデータベースを作成するだけです。 statementとCREATE TABLE ddlコマンドのexecute()メソッドを見てください。 –

+0

@ChrisGerkenデータベースはすでに作成されています。私はコマンドライン(ijツール)を介してデータベースにあるすべてのデータを見ることができます。 – fafinu

+0

@ChrisGerkenありがとう、私はそのデータベースが問題だと思った。データベースを作成しましたが、場所が異なります。理解した。 – fafinu

答えて

0

私は問題があると考えました。 ij経由でデータベースを作成するとき、私はソースファイルと同じディレクトリにいなければなりませんでした。今ではEclipseの下で、私はこれがパッケージフォルダ(JAVAProject/src/package)の下にある必要があると思っていましたが、それは間違っていました。私は(JAVAProject)の下にいなければならなかった。

関連する問題