Tomcat配置MySql連接池問題


配置過程如下:

1、修改Tomcat—>conf目錄下的context.xml文件

<Context path="/DBTest" docBase="DBTest"
        debug="5" reloadable="true" crossContext="true">

   
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="sa" password="123456"     driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/testdb?autoReconnect=true"/>
</Context>

2、將MySql的jdbc驅動放入到Tomcat—>lib目錄下

MySql jdbc驅動下載地址:http://dev.mysql.com/downloads/connector/j/

3、在servlet工程的web.xml增加配置

<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>

4、java應用中如下使用連接池

String sql = "SELECT * FROM deviceinfo WHERE CAMERA_NAME = '" + cameraName + "'";
        try{
            Context initContext = new InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
            Connection conn = ds.getConnection();
            Statement st = null;
            ResultSet rs = null;
            st = conn.createStatement();
            rs = st.executeQuery(sql);
            rs.next();
            String cameraID = rs.getString("CAMERA_ID");
            rs.close();
            conn.close();
            PrintWriter out = response.getWriter();
            out.print("cameraID = " + cameraID);
        }catch(Exception e){
            
        }

備注:

1、直接在Tomcat安裝目錄下修改context.xml文件后,通過Eclipse啟動Tomcat,會發現context.xml被重置了

解決:若使用Eclipse啟動Tomcat,則需要在Eclipse中修改Tomcat的配置文件,如圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM