以tomcat为服务器连接到derby数据库



如何连接到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,我目前正在使用它

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

你可能想看看这些问题:

  • 难道没有必要在Resource标签中提到归档文件的名称吗
  • 我在context.xml中添加的标签什么时候被读取
  • 查找过程中遵循了哪些步骤?首先看的是web.xml还是context.xml

您需要:

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。

您的示例需要JNDI。请参阅相关的tomcat版本文档以进行设置。

或者使用连接字符串,这是derby文档中的一个页面http://db.apache.org/derby/integrate/plugin_help/derby_app.html

最新更新