Tomcat 数据源配置

有关 Tomcat 数据源的配置,在网上能找到相当多的资料,一般是两种方法:

  1. 全局配置,需要修改 Tomcat 的配置文件 {tomcat home}/conf/server.xml
  2. 局部配置,对 web app 进行单独设置

对于1,鄙人认为不爽,要是有多个 app,会相互影响,不尝试。下面记录局部配置的方法:

a. 配置文件。在 web app 的 META-INF 文件夹下添加一名为 context.xml 的 XML 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" crossContext="true">
    <Resource
        name="jdbc/iridium"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@172.168.1.104:1521:IRIDIUM"
        maxActive="50"
        maxldle="10"
        maxWait="5000"
        username="scott"
        password="hello" />
</Context>

b. 驱动程序。这个有点奇怪,JDBC 驱动程序的 jar 包必须放到 {tomcat home}/lib 中,否则找不到驱动。{web app}/WEB-INF/lib 中无需放驱动包。

c. 代码中获取连接。需要 import javax.sql.* and javax.naming.*

    public static Connection getConnection2() {
        Connection conn = null;
        Context context;
        try {
            context = new InitialContext();
            // 获得数据源
            DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/iridium");
            // 获取连接
            conn = ds.getConnection();
            System.out.println("It's me!");
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

后记:鸣谢 Google, JavaEye 是你们让我找到的,呵呵。