0

为了在使用时连接derby数据库Tomcat,我下载了核心 Apache Derby 数据库引擎的 jar(版本:10.9.1.0)。我将这个 jar 文件保存lib在 Tomcat 的文件夹下。

在此处输入图像描述

现在有人告诉我context.xmlTomcat.

<Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource"
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
    url="jdbc:derby://localhost:1527/polldatabase;create=true"
    username="suhail" password="suhail"
    maxActive="20" maxIdle="10" maxWait="-1" />
  • 这个标签有什么作用?我的意思是它是什么意思?

  • 虽然我下载的 Jar 文件包含org.apache.derby.jdbc.EmbeddedDriver我在这个标签中提到我下载的 jar 的模式?不需要在标签中添加存档名称吗?

4

1 回答 1

3

一旦你在 Tomcat lib 文件夹下放了一个 jar,Tomcat 会自动加载它并将它放在类路径中,这样所有在 Tomcat 上运行的应用程序都知道这个 jar。

XML 中的定义仅仅意味着您定义了一个数据源。应用程序服务器中使用数据源来管理数据库连接池,因此您不必这样做,它是首选的方式,而不是使用普通的 JDBC。

在您定义的 xml 中:driverClassName="org.apache.derby.jdbc.EmbeddedDriver"并且由于您将包含此类的驱动程序 jar 放在 lib 文件夹中,它会知道在哪里查找它,而无需告诉它 jar 在哪里。

请注意,将 jar 放在 Tomcat lib 下并不总是最好的解决方案,因为就像我说的那样,tomcat 下的所有应用程序都会知道这个 jar,如果有一个应用程序已经使用这个 jar 的不同版本,它可能会导致冲突。

更好的解决方案可能是将 jar 放在 WEB-INF/lib 下,这样只有这个应用程序知道 jar。

于 2012-07-17T09:44:55.557 回答