Tomcat相信大家已經很熟悉了,作為一種免費而強大的java web server,得到了很多java愛好者的青睞,最新版本的tomcat5支持servlet2.4和jsp2.0,今天我將采用Tomcat5和Ms sqlserver 000一起來開始數據庫連接池配置之旅。 需要的準備 1、jdk 我使用的版本1.4.01 2、Tomcat 5 我使用的是5.0.16版本 下載地址:http://jakarta.apache.org/site/binindex.cgi 3、Mssql server 2000 數據庫 4、Mssql server 2000的官方jdbc driver ,可以到微軟的官方網站免費下載 好了在安裝完上面的軟件之后,就進入配置實戰了:) 一、找到jdbc的安裝目錄,把lib目錄下面的msbase.jar和mssqlserver.jar、msutil.jar三個文件一起copy到$CATALINA_HOME/common/lib/($CATALINA_HOME代表的是你的tomcat5的安裝目錄) 二、用文本編輯器,我這是使用editplus(她可是我的摯愛奧)打開$CATALINA_HOME/conf/server.xml文件,找到配置context的地方,把下面的代碼 粘貼到文件里面 <Context path="/DBTest" docBase="D:\rautinee work\db\" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/TestDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit. --> <parameter> <name>maxActive</name> <value>100</value> </parameter> <!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit. --> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely. --> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <!-- MSSQLserver dB username and password for dB connections --> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value></value> </parameter> <!-- Class name for mssqlserver JDBC driver --> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <!-- The JDBC connection url for connecting to your mssqlserver dB.--> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://localhost:1433;databasename=Northwind</value> </parameter> </ResourceParams> </Context> 注意:我本地的數據庫的sa的密碼為空,數據庫使用的是Northwind,我的目錄名DBTest,他的目錄是D:\rautinee work\db\ 打開DBTest下面的web.xml文件,用下面的代碼替換原來的內容 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <description>MSSql server Test App</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> ok,配置完成,下面的工作是需要編寫兩個文件測試一下,連接是否成功。 這里我用了http://jakarta.apache.org上面的例子 首先是bean文件 package foo; 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"); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB"); if (ds != null) { Connection conn = ds.getConnection(); if(conn != null) { foo = "Got Connection "+conn.toString(); Statement stmt = conn.createStatement(); ResultSet rst = stmt.executeQuery("select * from orders"); if(rst.next()) { foo=rst.getString("CustomerID"); bar=rst.getInt("OrderID"); } conn.close(); } } }catch(Exception e) { e.printStackTrace(); } } public String getFoo() { return foo; } public int getBar() { return bar;} } 然后是index.jsp文件
<html> <head> <title>DB Test</title> </head> <body> <% foo.DBTest tst = new foo.DBTest(); tst.init(); %> <h2>Ms sql server 2000 java search Results</h2> Foo <%= tst.getFoo() %><br/> Bar <%= tst.getBar() %> </body> </html> 'www.knowsky.com 編譯運行,如果不出意外,應該檢索到一條記錄, 我的ie中顯示的是 Ms sql server 2000 java search Results Foo VINET Bar 10248 ok,配制成功! 參考文檔: http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html 上面有mysql和oracle8i的連接教程,有興趣的朋友可以上去看一下。 作者 海仔 email:rautinee@21cn.com http://www.tryitsoft.com
|