一、安装JDBC Driver
我用的是tomcat5.5和mysql5.0,将数据库的驱动放至{Tomcat_install}\common\lib目录下。
二、配置Connection Pool
1.配置全局的连接池,可以由多个工程引用。
在Tomcat的server.xml文件中的GlobalNamingResources结点下面添加,连接池设置
1. <Resource name="jdbc/linux" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password=""driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/jaoso?useUnicode=true&characterEncoding=GBK" />
然后在conf/catalina/localhost/下面添加你工程的配置文件,我的工程名叫linuxDemo,配置文件名叫linuxDemo.xml
1. <Context docBase="linuxDemo" path="/linuxDemo" privileged="true">
<ResourceLink name="jdbc/linux" global="jdbc/linux" type="javax.sql.DataSource"/>
3. Context>
或者直接把上面这段放到server.xml的host结点中就不用添加上面的linuxDemo.xml,其中这一行别忘了,
1. <ResourceLink name="jdbc/linux" global="jdbc/linux" type="javax.sql.DataSource"/>
是引用服务器上全局的连接池资源. 这两种效果是一样的,现在就可以在web工程中引用连接池来创建数据库接了.
2.第二种方法:配置私有的连接池:只有该工程可以使用直接在conf/catalina/localhost/中添加linuxDemo.xml,添加如下内容:
1. <Context docBase="linuxDemo" path="/linuxDemo" privileged="true">
2. <Resource name="jdbc/linux" auth="Container" type="javax.sql.DataSource"
3. maxActive="100" maxIdle="30" maxWait="10000"
4. username="root" password="" driverClassName="com.mysql.jdbc.Driver"
5. url="jdbc:mysql://localhost:3306/jaoso?useUnicode=true&characterEncoding=GBK" />
6. Context>
这样就可以了。
3,第三种方法:也是私有的连接池
直接在服务器上{Tomcat_install}\conf目录下的context.xml添加工程配置和连接池配置,在结点Context中,添加:
1. <Resource name="jdbc/linux" auth="Container" type="javax.sql.DataSource"
2. maxActive="100" maxIdle="30" maxWait="10000"
3. username="root" password="" driverClassName="com.mysql.jdbc.Driver"
4. url="jdbc:mysql://localhost:3306/jaoso?useUnicode=true&characterEncoding=GBK" />
就可以了。
三、使用JDBC数据来源取得Connection对象
public class DatabaseConn {
public static synchronized Connection getConnection() {
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/linux");
return ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}