2012-07-11 12 views
6

¿Cómo me conecto a la base de datos de derby (que viene con netbeans)? Estoy usando Tomcat como el servidor. Anteriormente utilicé las siguientes declaraciones para conectarme a la base de datos derby, pero luego usé glassfish como servidor.conectando a la base de datos de derby con tomcat como el servidor

Context context = new InitialContext(); 
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/PollDatasource"); 
Connection connection = ds.getConnection(); 

Pero ahora, al utilizar Tomcat como servidor, no sé cómo hacerlo.

Nota: Tomcat y Derby están pre-instalado con el IDE NetBeans que estoy usando actualmente

+0

usted tiene * * Configurar JNDI dataSource? – adatapost

+0

@AVD no no se ha configurado que –

+0

Consulte este [url] (http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html) y @Raknel post. – adatapost

Respuesta

10

En Tomcat encontrar conf/context.xml, a continuación, editar y escribir algo como esto:

<Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource" 
    driverClassName="com.YourDriver" 
    url="jdbc:derby://localhost:1527/nameOfTheDatabase;create=true" 
    username="username" password="password" maxActive="20" 
    maxIdle="10" maxWait="-1" /> 

Nota 1: Con la URL anterior será el motor org.apache.derby.jdbc.ClientDriver

Nota 2: También puede agregar la información anterior en META-INF/context.xml de su proyecto. Esto se convierte en específico de la aplicación. Si agrega la información en context.xml de tomcat, se convierte en global.

Nota 3: Descargar el tarro de this website .download db-derby-10.9.1.0-bin.zip.It contiene muchos archivos, incluyendo derby.jar y derbyclient.jar (junto con toda la documentación). derbyclient.jar contiene nuestro amigo org.apache.derby.jdbc.ClientDriver.class. derby.jar contiene org.apache.derby.jdbc.EmbeddedDriver. Mantenga el archivo descargado en la carpeta lib de Tomcat.

y en su aplicación web.xml "recurso-ref":

<resource-ref> 
    <description>my connection</description> 
    <res-ref-name>jdbc/PollDatasource</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    </resource-ref> 

es posible que desee mirar a estas preguntas:

+0

¿qué es 'driverClassName'? –

+1

Este es el nombre del controlador JDBC, específico para la base de datos. Para su aplicación que será org.apache.derby.jdbc.EmbeddedDriver. Puede descargar esto en jar desde: http://mvnrepository.com/artifact/org.apache.derby/derby – Raknel

+0

Agregué estas etiquetas pero obtengo una [excepción] (http://stackoverflow.com/questions/11516747/org -apache-tomcat-dbcp-dbcp-sqlnestedexception-what-is-this-and-why-i-get-t) –

4

es necesario:

1) copia de su derbyclient-*.jar a ${TOMCAT_HOME}/lib.

2) Editar su server.xml y añadir las siguientes líneas a la sección GlobalNamingResources:

<Resource auth="Container" 
      driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
      maxActive="8" maxIdle="4" 
      name="jdbc/my-ds" type="javax.sql.DataSource" 
      url="jdbc:derby:mydb;create=true" 
      username="myuser" password="mypassword" /> 

3) En su definición de contexto, añadir:

<Context docBase="myapp" 
      path="/myapp" 
      reloadable="true" 
      ...> 
    <ResourceLink name="jdbc/my-ds" 
        global="jdbc/my-ds" 
        type="javax.sql.DataSource" /> 
</Context> 

4) Reinicie Tomcat.

+0

[Agregué estas etiquetas, pero obtengo una excepción.] (Http://stackoverflow.com/questions/11516747/org-apache-tomcat-dbcp-dbcp-sqlnestedexception-what-is-this-and-why-do-i -get-t) Aunque he editado el 'context.xml' de tomcat y' web.xml' en mi proyecto. –

+0

Upvoting esto porque lo encontré por accidente y encaja muy bien en mi aplicación actual. – thonnor

Cuestiones relacionadas