如何连接到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