使用Tomcat作为服务器连接到Derby数据库

6
我该如何连接Derby数据库(它随NetBeans一起提供)?我正在使用Tomcat作为服务器。以前我使用以下语句来连接Derby数据库,但后来我使用了glassfish作为服务器。
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/PollDatasource");
Connection connection = ds.getConnection();

但是现在我使用Tomcat作为服务器,我不知道如何做到这一点。

注意: Tomcat和Derby已经预装在我正在使用的NetBeans IDE中


你已经配置了JNDI数据源吗? - KV Prajapati
@AVD 没有配置那个。 - Suhail Gupta
请参考此链接(http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)和@Raknel的帖子。 - KV Prajapati
3个回答

10

在Tomcat中找到 conf/context.xml,然后进行编辑并编写以下内容:

<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:使用上面的URL时,驱动程序将为org.apache.derby.jdbc.ClientDriver

注意2:您还可以将上述信息添加到项目的META-INF/context.xml中。这将变为特定于应用程序。如果您将信息添加到Tomcat的context.xml中,则变为全局性。

注意3:从此网站下载jar包。下载db-derby-10.9.1.0-bin.zip。它包含许多文件,包括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”:

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

你可能想看一下这些问题:


1
这是特定于数据库的JDBC驱动程序名称。对于您的应用程序,它将是org.apache.derby.jdbc.EmbeddedDriver。您可以从以下网址下载其jar包:http://mvnrepository.com/artifact/org.apache.derby/derby - Raknel
我添加了这些标签,但出现了异常。 - Suhail Gupta
请问您能否解释一下在尝试连接时这些标签是如何查找的?我在应用时遇到了问题,也不太理解。 - Suhail Gupta

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。


我已编辑了Tomcat的context.xml和项目中的web.xml,但是添加这些标签时仍然出现异常。(https://dev59.com/GWgu5IYBdhLWcg3wLEM9) - Suhail Gupta
点赞这个,因为我是偶然发现它的,而且它非常适合我的当前应用程序。 - thonnor

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接