| |
Note
对于Tomcat4和5,postgresql.jar必须放在$CATALINA_HOME/common/lib中
|
|
|
绝对轻松的办法是把它设置在Tomcat一起提供的Tomcat实例admin web应用中,只需把数据源家到你要用到的Context中即可。
下面是在Tomcat 4的conf/server.xml中标签中的设置<>
| |
<Resource name="jdbc/postgres" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/postgres">
<parameter>
<name>validationQuery</name>
<value>select version();</value>
</paramete>
<parameter>
<name>url</name>
<value>jdbc:postgresql://localhost/davec</value>
</parameter>
<parameter>
<name>password</name>
<value>davec</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>davec</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
|
|
在Tomcat 5中设置可以用以上方法,只是它变成是标签中的,如.....
另外,还有一个conf/Catalina/hostname/context.xml的文件。例如,http://localhost:8080/servlet-example目录中有一个文件 $CATALINA_HOME/conf/Catalina/localhost/servlet-example.xml。这个文件里面把上面的xml放置在标签中。
然后你可以用以下代码访问连接。
| |
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class DBTest {
String foo = "Not Connected";
int bar = -1;
public void init() {
try {
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context"); // /jdbc/postgres is the name of the resource above DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/postgres");
if (ds != null) {
Connection conn = ds.getConnection();
if(conn != null) {
foo = "Got Connection "+conn.toString();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select id, foo, bar from testdata");
if(rst.next()) {
foo=rst.getString(2);
bar=rst.getInt(3);
}
conn.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
public String getFoo() {
return foo;
}
public int getBar() {
return bar;
}
}
|
|