Tomcat教程

全部教程

×

PostgreSQL配置

PostgreSQL 配置简介

PostgreSQL 配置与 Oracle 基本相似。

所需文件

将 Postgres 的 JDBC jar 文件复制到 $CATALINA_HOME/lib 中。和 Oracle 配置一样,jar 文件必须放在这个目录中,DBCP 类加载器才能找到它们。不管接下来如何配置,这是首先必须要做的。

资源配置

目前有两种选择:定义一个能够被 Tomcat 所有应用所共享的数据源,或者定义只能被单个应用所使用的数据源。

  • 共享数据源配置

如果想定义能够被多个 Tomcat 应用所共享的数据源,或者只想在文件中定义自己的数据源,则采用如下配置:

尽管有些用户反馈说这样可行,但本文档作者却没有成功,希望有人能阐述清楚。

  • 应用专属的资源配置

如果希望专门为某一应用定义数据源,其他 Tomcat 应用无法使用,可以使用如下配置。这种方法对 Tomcat 安装的损害性要小一些。

在你的应用的 Context 中创建一个资源定义,如下所示:

<Resource name="jdbc/postgres" auth="Container"
          type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
          url="jdbc:postgresql://127.0.0.1:5432/mydb"
          username="myuser" password="mypasswd" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>

web.xml 配置

<Context>
<Resource name="jdbc/postgres" auth="Container"
          type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
          url="jdbc:postgresql://127.0.0.1:5432/mydb"
          username="myuser" password="mypasswd" maxTotal="20" maxIdle="10"maxWaitMillis="-1"/></Context>

访问数据库

在利用程序访问数据库时,记住把 java:/comp/env 放在你的 JNDI lookup 方法参数的前部,如下面这段代码所示。另外,可以用任何你想用的值来替换 jdbc/postgres,不过记得也要用同样的值来修改上面的资源定义文件。

InitialContext cxt = new InitialContext();if ( cxt == null ) {
   throw new Exception("Uh oh -- no context!")
}
DataSource ds = (DataSource) cxt.lookup( "java:/comp/env/jdbc/postgres" );
if ( ds == null ) {
   throw new Exception("Data source not found!");

}