Come utilizzare SQLDeveloper per la connessione a embedded database Derby

Ho un progetto che utilizza il derby e JPA. Io mi posso collegare il database bene all’interno della mia applicazione. Vorrei collegare embedded database con SQL Developer in modo da poter facilmente navigare/query i dati nel database.

Qui è il derby di dipendenza che sto usando:

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

Qui è che le informazioni di connessione che sto usando per 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"/>

Utilizzando SQL Developer 3.2.09 ho provato ad aggiungere il driver in Strumenti > Preferenze > Database > Terzi Driver JDBC con il seguente voce:

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

Ma quando provo a creare una nuova connessione, SQL Developer ancora solo mi mostra le schede per Oracle e Access. Non riesco a JDBC scheda per il 3 ° partito driver.

Penso che il problema è che il barattolo che sto aggiungendo come il 3rd party driver è l’intero derby jar, non appena il guidatore. Ma il driver è contenuto nel vaso.

Qualcuno sa come configurare SQL Developer per utilizzare l’org.apache.il derby.jdbc.EmbeddedDriver contenute all’interno derby-10.7.1.1.jar?

InformationsquelleAutor axiopisty | 2012-09-01

 

3 Replies
  1. 1

    Oracle SQL Developer può essere configurato manualmente per lavorare con il Derby utilizzando i driver forniti con la JDK di Java 8.

    Passo 1: In Oracle SQL Developer, includono Derby relative librerie.

    Oracle SQL Developer -> Strumenti -> Impostazioni -> basi di dati -> Terzi i Driver JDBC. Ho semplicemente [Aggiungi…] tutte le librerie sotto C:\Program Files\Java\jdk1.8.0_92\db\lib

    Passaggio 2: modificare Manualmente connections.xml

    Modifica 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

    In questo esempio sto usando embedded Derby driver.

    <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>
    

    Nota:

    1. XML impostazione può essere normale, come mostrato sopra.

    2. stringhe customurl è jdbc:derby:firstdb;create=true. Ciò consente di inizializzare firstdb schema in C:\sqldeveloper\bin\firstdb. È possibile utilizzare jdbc:derby:D:\\Progetto\\derbydb\\firstdb di inizializzazione schema di un percorso assoluto.

    • Semplicemente sostituire al di sopra di XML, org.apache.il derby.jdbc.EmbeddedDriver per org.apache.il derby.jdbc.ClientDriver e jdbc:derby:firstdb;create=true per jdbc:derby://localhost:1527/D:\\Progetto\\derbydb\\firstdb;create=true, quindi SQLDeveloper grado di connettersi alla rete Derby server.
    • Su mac OS X le connessioni file si trova in /Users/<username>/.sqldeveloper/system17.4.0.355.2349/o.jdeveloper.db.connection/connections.xml
    • Appena confermato questo funziona per SQL Developer versione 17.4.0
  2. 7

    SQL Developer non supporta Apache Derby. Supporta solo un numero molto limitato (e fissa) imposta di DBMS come documentato sul Sito:

    • Oracle (ovviamente)
    • MySQL (ovviamente)
    • SQL Server
    • DB2
    • MS Access
    • Sybase
    • Teradata

    (Tutte le terze parti DBMS sono elencati come “sola lettura” sul sito – qualunque cosa significhi)

    Avrete bisogno di un “vero” general purpose JDBC client per l’utilizzo contro il Derby come lo Scoiattolo, il tool chiamato dbvisualizer o SQL Workbench/J.

    • Ufficialmente SQL Developer non supporta Apache Derby. Tuttavia, a seguito di @user3766196 risposta, il Derby di connessione può essere aggiunto manualmente per SQL Developer.
  3. 1

    Sono stato in grado di ottenere questo lavoro su sql developer 4.0.2.15 utilizzando il driver di rete aggiungendo i file del driver per il classpath e poi modifica il connections.xml file nella directory AppData\Roaming\SQL Developer\sistema4.0.2.15.21\o.jdeveloper.db.connessione.12.1.3.2.41.140418.1111

    L’ho fatto copiando una connessione a sql server, ma sembra funzionare felicemente pensare che è un database di sql server.

    Ho aggiunto i seguenti file :

     <Reference name="NOMEDATABASE" className="oracle.jdeveloper.db.l'adattatore.DatabaseProvider" xmlns=""\> 
    <Fabbrica className="oracle.jdevimpl.db.l'adattatore.DatabaseProviderFactory1212"/> 
    <RefAddresses> 
    <StringRefAddr addrType="porta"> 
    <Indice>1527/DATABASENAME</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="utente"> 
    <Indice>nome utente</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="NoPasswordConnection"> 
    <Indice>VERO</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="sottotipo"> 
    <Indice>SQLServer</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="RaptorConnectionType"> 
    <Indice>Microsoft SQL Server</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="ConnName"> 
    <Indice>DATABASENAME</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="hostname"> 
    <Indice>HOSTNAME</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="stringhe customurl"> 
    <Indice>JDBCURL</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="SavePassword"> 
    <Indice>false</Contents> 
    </StringRefAddr> 
    <StringRefAddr addrType="driver"> 
    <Indice>org.apache.il derby.jdbc.ClientDriver</Contents> 
    </StringRefAddr> 
    </RefAddresses> 
    </Riferimento> 
    

    È necessario configurarlo con i valori appropriati per DATABASENAME, il nome utente, il nome host e JDBCURL per il database.

    Spero che questo aiuta

Lascia un commento