2012-07-11 55 views
6

我如何連接到德比數據庫(與netbeans自帶)?我使用Tomcat作爲服務器。之前我使用以下語句連接到derby數據庫,但後來我使用glassfish作爲服務器。連接到derby數據庫與tomcat作爲服務器

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

但是現在使用Tomcat,因爲我不知道如何做到這一點的服務器。

注:Tomcat和德比都預裝有我使用目前

+0

你有* *配置JNDI數據源? – adatapost 2012-07-11 09:00:01

+0

@AVD沒有配置 – 2012-07-11 09:01:17

+0

請參考這個[url](http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)和@Raknel post。 – adatapost 2012-07-11 09:02:38

回答

10

在Tomcat中找到conf/context.xml文件 NetBeans IDE中,然後編輯和寫是這樣的:

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

注1:根據上面的網址司機將org.apache.derby.jdbc.ClientDriver

注2:您還可以在項目的META-INF/context.xml中添加上述信息。這成爲特定於應用程序。如果您將信息添加到tomcat的context.xml中成爲全局信息。

注3:下載從this website。下載db-derby-10.9.1.0-bin.zip.It的jar包含許多文件,其中包括的derby.jar和derbyclient.jar中(與多文檔一起)。 derbyclient.jar包含我們的朋友org.apache.derby.jdbc.ClientDriver.class。 derby.jar包含org.apache.derby.jdbc.EmbeddedDriver。將下載的jar保存在Tomcat的lib文件夾中。

,並在應用程序中的web.xml 「資源引用」:

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

你可能想看看這些問題:

+0

什麼是'driverClassName'? – 2012-07-11 09:26:11

+1

這是JDBC驅動程序的名稱,特定於數據庫。對於你的應用程序將是org.apache.derby.jdbc.EmbeddedDriver。你可以從下載jar中的這個:http://mvnrepository.com/artifact/org.apache.derby/derby – Raknel 2012-07-11 09:40:51

+0

我添加了這些標籤,但得到[例外](http://stackoverflow.com/questions/11516747/org -apache-tomcat -dbcp -dbcp -sqlnestedexception-what-is-this-and-why-do-i-get-t) – 2012-07-17 11:19:39

4

您需要:

1)複製你的derbyclient-*.jar${TOMCAT_HOME}/lib

2)編輯server.xml和添加下列行到第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)在你的語境定義,添加:

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

4)重新啓動Tomcat。

+0

[我添加了這些標籤,但得到一個例外。](http://stackoverflow.com/questions/11516747/org-apache-tomcat-dbcp-dbcp-sqlnestedexception-what-is-this-and-why-do-i -get-t)儘管我在我的項目中編輯了tomcat和web.xml的'context.xml'。 – 2012-07-18 09:26:40

+0

Upvoting這是因爲我偶然發現它,它非常適合我當前的應用程序。 – thonnor 2014-12-19 14:40:53

相關問題