最近做個項目,需要在tomcat,weblogic中寫連接池.weblogic還是老樣子,照着圖形界面配置就可以了.Tomcat我用的是5.5.9.雖說以前用tomcat4版本寫過,可早就聽說,5版本和4版本的差距很大.所以就提前做好了心裏準備,先看了一個幫助文檔,花了進一個小時的時間搞定,現在整理出來與大家分享.
其實Tomcat5要比tomcat4簡單多了,如果還是按tomcat4的套路來,呵呵,那恐怕那走很多彎路了.
第一步:在tomcat5→common→lib下加入你所連接數據庫的驅動包.這裏我用的mysql數據庫.
第二步:在tomcat5→conf→Catalina→localhost配置一個xml文件.這裏一定要注意,必須和你的項目名稱是一模一樣的.我用的項目名爲testTomcat.testTomcat.xml文件配置如下:
java 代碼
-
- type='javax.sql.DataSource' driverClassName='com.mysql.jdbc.Driver'
- url='jdbc:mysql:
- username='root' password='' maxActive='20' maxIdle='10'
- maxWait='-1'/>
-
-
- global="UserDatabase"
- name="users"
- type="org.apache.catalina.UserDatabase"/>
這裏就和以前的tomcat4版本不一樣了,以前要在server.xml配置.而tomcat5版本直接在這裏配置就可以了.
第三步:在你項目的 web.xml配置如下:
xml 代碼
- <resource-ref>
- <description>mysql for 192.1.1.156 description>
- <res-ref-name> jdbc/mysql res-ref-name>
- <res-type>javax.sql.DataSourceres-type>
- <res-auth>Containerres-auth>
- resource-ref>
注意:這裏的res-ref-name名字必須和testTomcat.xml文件中的一樣.其實這一步省去也是可以的.但還是建議配置一下
第四步:建一個JSP頁面來感受一下成功的喜悅吧.頁面代碼如下
java 代碼
- Context initCtx = new InitialContext();
- Context ctx = (Context) initCtx.lookup("java:comp/env");
- ds =(javax.sql.DataSource) ctx.lookup("jdbc/mysql");
- System.out.println("Init datasource OK @!");
注意:別忘了引入相關的包哦.還要注意的是這裏不能用主函數來測試.因爲你主函是得到tomcat的上下文的.
在項目中應用如下:
java 代碼
- public class TomcatJDNI {
-
- public static String
- DATASOURCE_CONFIG_FILE="test.db";
- public static DataSource ds;
-
- static{
- try{
- ResourceBundle rb = ResourceBundle.getBundle(DATASOURCE_CONFIG_FILE);
- String dsName = rb.getString("datasource_name");
- Context initCtx = new InitialContext();
- Context ctx = (Context) initCtx.lookup("java:comp/env");
- ds =(javax.sql.DataSource) ctx.lookup(dsName);
- System.out.println("Init datasource OK @!");
- }catch(Exception e){
- System.out.println("can’t init datasource !");
- }
- }
-
- public static Connection getConnection() throws SQLException{
- return ds.getConnection();
- }
- }
- 這裏的test.db是一個db.properties文件.文件內容如下
- datasource_name= jdbc/mysql
- 這樣擴展性比較好.連接其它的數據庫,只需要改動此文件,無需重新編譯.
- 就到這裏吧
- Good luck!
|