2012-09-01 52 views
2

我有一個使用derby和JPA的項目。我可以在我的應用程序內連接到數據庫。我想用SQL Developer連接到嵌入式數據庫,這樣我就可以輕鬆瀏覽/查詢數據庫中的數據。如何使用SQLDeveloper連接到嵌入式Derby數據庫

這裏是我使用的德比依賴性:

<dependency> 
    <groupId>org.apache.derby</groupId> 
    <artifactId>derby</artifactId> 
    <version>10.7.1.1</version> 
</dependency> 

這裏是我使用JPA的連接信息:

<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/> 
<property name="javax.persistence.jdbc.url" value="jdbc:derby:fs-hash-database;create=true"/> 

使用SQL開發09年2月3日我試着工具>首選項>數據庫>第三方JDBC驅動程序中添加以下條目的驅動程序:

C:\Users\axiopisty\.m2\repository\org\apache\derby\derby\10.7.1.1\derby-10.7.1.1.jar 

但是,當我嘗試創建新連接時,SQL Developer仍然只顯示Oracle和Access的選項卡。我無法獲得第三方驅動程序的JDBC選項卡。

我認爲,問題是,我加入的第三方驅動程序的jar整個德比罐子,不只是司機。然而,司機被包含在罐子裏。

有誰知道如何配置SQL Developer來使用包含德比 - 10.7.1.1.jar內org.apache.derby.jdbc.EmbeddedDriver?

回答

1

的Oracle SQL Developer可以手動配置使用附帶的JDK與Java 8步驟1的

司機與德比的工作:在Oracle SQL Developer中,包括德比相關的圖書館。

Oracle SQL Developer - >工具 - >首選項 - >數據庫 - >第三方JDBC驅動程序。我只是[添加條目...]所有庫在C:\ Program Files文件\的Java \ jdk1.8.0_92 \ DB \ lib中

步驟2:手動編輯connections.xml

編輯C:\ Users \ USERNAME \ AppData \ Roaming \ SQL Developer \ system4.1.2.20.64 \ o.jdeveloper.db.connection.12.2.1.0.42.151001.541 \ connections.xml

在這個例子中,我使用了嵌入式Derby驅動程序。

<Reference name="DerbyConn" className="oracle.jdeveloper.db.adapter.DatabaseProvider" xmlns=""> 
    <Factory className="oracle.jdevimpl.db.adapter.DatabaseProviderFactory1212"/> 
    <RefAddresses> 
    <StringRefAddr addrType="OracleConnectionType"> 
     <Contents>BASIC</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="RaptorConnectionType"> 
     <Contents>Microsoft SQL Server</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="customUrl"> 
     <Contents>jdbc:derby:firstdb;create=true</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="driver"> 
     <Contents>org.apache.derby.jdbc.EmbeddedDriver</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="subtype"> 
     <Contents>SQLServer</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="ConnName"> 
     <Contents>DerbyDB</Contents> 
    </StringRefAddr> 
    </RefAddresses> 

注:
1. XML設置可以作爲純如上所示。
2. customUrl是jdbc:derby:firstdb; create = true。這將初始化C:\ sqldeveloper \ bin \ firstdb中的firstdb模式。您可以使用jdbc:derby:D:\\ Project \\ derbydb \\ firstdb將模式初始化爲絕對位置。

+0

只需將** org.apache.derby.jdbc.EmbeddedDriver **替換爲** org.apache.derby.jdbc.ClientDriver **和** jdbc:derby:firstdb; create = true ** to * * jdbc:derby:// localhost:1527/D:\\ Project \\ derbydb \\ firstdb; create = true **,則SQLDeveloper可以連接到網絡Derby服務器。 – oraclesoon

+0

在mac OS X上,連接文件位於'/ Users//.sqldeveloper/system17.4.0.355.2349/o.jdeveloper.db.connection/connections.xml' – axiopisty

+0

剛剛確認這適用於SQL Developer 17.4.0版 – axiopisty

7

SQL Developer不支持Apache Derby。它僅支持非常有限的(固定式)一套DBMS as documented on the WebSite的:

  • 甲骨文(顯然)
  • MySQL的(顯然)
  • SQL服務器
  • DB2
  • 的MS Access
  • 的Sybase
  • Teradata

(所有第三方數據庫管理系統在網站上都被列爲「只讀」 - 不管這意味着什麼)

您需要一個「真正」的通用JDBC客戶端來使用它來對付Derby,如Squirrel,DbVisualizer或SQL Workbench/J。

+0

官方SQL Developer不支持Apache Derby。但是,在@ user3766196答案後,可以手動將Derby連接添加到SQL Developer。 – oraclesoon

1

我能得到這個通過添加驅動程序文件到類路徑,然後編輯目錄中的應用程序數據\漫遊\ SQL開發\系統4 connections.xml文件,在SQL Developer的4.0.2.15工作使用的網絡驅動程序。 0.2.15.21 \ o.jdeveloper.db.connection.12.1.3.2.41.140418.1111

我這樣做是通過複製一個sql server連接,但它似乎愉快地工作,認爲它是一個sql server數據庫。

添加以下的文件:

 
    <Reference name="DATABASENAME" className="oracle.jdeveloper.db.adapter.DatabaseProvider" xmlns=""\> 
     <Factory className="oracle.jdevimpl.db.adapter.DatabaseProviderFactory1212"/> 
     <RefAddresses> 
     <StringRefAddr addrType="port"> 
      <Contents>1527/DATABASENAME</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="user"> 
      <Contents>USERNAME</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="NoPasswordConnection"> 
      <Contents>TRUE</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="subtype"> 
      <Contents>SQLServer</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="RaptorConnectionType"> 
      <Contents>Microsoft SQL Server</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="ConnName"> 
      <Contents>DATABASENAME</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="hostname"> 
      <Contents>HOSTNAME</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="customUrl"> 
      <Contents>JDBCURL</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="SavePassword"> 
      <Contents>false</Contents> 
     </StringRefAddr> 
     <StringRefAddr addrType="driver"> 
      <Contents>org.apache.derby.jdbc.ClientDriver</Contents> 
     </StringRefAddr> 
     </RefAddresses> 
    </Reference> 

你將不得不與DATABASENAME,USERNAME,主機名和JDBCURL爲數據庫的相應值的配置。

我希望這有助於

相關問題