2017-12-21 39 views
1

NetbeansでJavaプロジェクトを開発しました。今度は、指定したデータベースを最初に起動すると、次のコードが実行可能になるという問題があります。Netbeans:プログラムでDerbyデータベースを起動する方法

private boolean DriverIsLoaded() 
{ 
    try 
    { 
     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     return true; 
    } 
    catch(ClassNotFoundException e) 
    { 
     e.printStackTrace(); 
     return false; 
    } 
} 
private boolean openConnectionAndCheck() 
{ 
    try 
    { 
     connection = DriverManager.getConnection("jdbc:derby://localhost:1527/myDatabase;create=true", "Administrator", "Administrator"); 
     return true; 
    } 
    catch(SQLException e) 
    { 
     e.printStackTrace(); 
     return false; 
    } 
} 

私はNetbeans内でデータベースを作成しました。私の質問は、私はどのようにプログラムでjdbcデータベースを起動できますか?

+0

[NetBeans]の可能な複製。ホスティングデータベースに接続](https://stackoverflow.com/questions/5589467/netbeans-connect-to-hosting-database) – Squareoot

答えて

0

ダービークライアント - サーバ構成の全体のポイントは、(すなわち、ダービーClientDriverを使用して、フォームjdbc:derby://host:port/path/to/databaseのJDBC接続URLを指定すると)、クライアントとサーバは通常、異なるコンピュータ上で、独立して運営されていることである、と一般的にそこに複数のクライアントですが、単一のサーバーのみです。

つまり、この種の構成では、クライアントが「プログラムによってJDBCデータベースを起動する」という考え方はありません。クライアントとサーバは同じコンピュータ上にいなくても!

ダービーの「埋め込み」設定が必要なのかもしれません。

ここでダービーの配置構成のタイプについて詳しく読む:http://db.apache.org/derby/docs/10.14/getstart/cgstutorialintro.html

と、おそらくあなたが本当に探していることは、ここで起動しているためダービーネットワークサーバーを展開、構成、および操作方法については、次のとおりです。http://db.apache.org/derby/docs/10.14/adminguide/index.html

0

プログラミングダービーを埋め込みモードに探しています。ここ は、コードスニペットです:完全なチュートリアルについては

package com.zetcode; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class CreateCars { 

    public static void main(String[] args) { 

     Connection con = null; 
     Statement st = null; 

     String url = "jdbc:derby:testdb;user=USER12"; 

     try { 

      System.setProperty("derby.system.home", "/home/janbodnar/.derby"); 

      con = DriverManager.getConnection(url); 
      st = con.createStatement(); 
      st.executeUpdate("CREATE TABLE CARS(ID INT PRIMARY KEY," 
        + "NAME VARCHAR(30), PRICE INT)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(1, 'Audi', 52642)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(2, 'Mercedes', 57127)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(3, 'Skoda', 9000)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(4, 'Volvo', 29000)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(5, 'Bentley', 350000)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(6, 'Citroen', 21000)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(7, 'Hummer', 41400)"); 
      st.executeUpdate("INSERT INTO CARS VALUES(8, 'Volkswagen', 21600)"); 
      DriverManager.getConnection("jdbc:derby:;shutdown=true"); 

     } catch (SQLException ex) { 

      Logger lgr = Logger.getLogger(CreateCars.class.getName()); 

      if (((ex.getErrorCode() == 50000) 
        && ("XJ015".equals(ex.getSQLState())))) { 

       lgr.log(Level.INFO, "Derby shut down normally", ex); 

      } else { 

       lgr.log(Level.SEVERE, ex.getMessage(), ex); 
      } 

     } finally { 

      try { 

       if (st != null) { 
        st.close(); 
       } 
       if (con != null) { 
        con.close(); 
       } 

      } catch (SQLException ex) { 
       Logger lgr = Logger.getLogger(CreateCars.class.getName()); 
       lgr.log(Level.WARNING, ex.getMessage(), ex); 
      } 
     } 
    } 
} 

、私のProgramming Derby with JDBCチュートリアルを見ています。

関連する問題