2012-09-01 51 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为数据库的相应值的配置。

我希望这有助于

相关问题