連線池實現連線Mysql資料庫
阿新 • • 發佈:2019-02-11
之前操作資料庫都是直接使用命令操作(因為做的都是小東西,併發量不會很大),但是如果做實際應用的東西就必須考慮使用連線池實現對資料庫的操作,因為資料庫的連線和釋放都會耗費很大的資源,連線池的原理就是連線池初始時會生成一些連線,當客戶端請求連線時會從連線池中直接分配,如果不夠則會生成新的連線(但是最大活躍數,最大空閒數,最大等待時間都可以在配置檔案中自定義)。使用完則會收回連線池而不會真正的釋放(當然也要根據配置檔案的最大空閒數的引數)。
最近研究瞭如何使用連線池連線Mysql資料庫(其餘類似):
1:首先在專案的WebContent/META-INF目錄下建立context.xml檔案,檔案中配置連線池資訊:
然後再專案的web.xml中配置入口資訊:
之前在網上查的資料是在tomcat伺服器的目錄apache-tomcat-8.0.24\conf下的context.xml和server.xml中進行配置;但是配置之後專案無法找到,失敗。(按理來說這應該是全域性配置但是不可以,不知道為什麼)。
進而進行測試:
藍色部分為固定寫法,紅色部分是web.xml中<res-ref-name>中設定的。<% Connection conn=null; DataSource ds=null; ResultSet set=null; Statement stmt=null; InitialContext ctx = new InitialContext(); ds=(DataSource)ctx.lookup("<span style="color:#3333ff;">java:comp/env/</span><span style="color:#ff0000;">jdbc/mysql</span>"); if(ds!=null) { out.println("已經獲取了DataSource"); conn=ds.getConnection(); stmt=conn.createStatement(); String ip="123.1.2.3"; int port=50; String sql="select * from ip_port where ip='"+ip+"'"; set=stmt.executeQuery(sql); while(set.next()) { out.println(set.getString("ip")); } } else out.println("獲取dataSource失敗"); %>
在使用之前需要在專案中包含如下的jar包:
下載包的連線:http://download.csdn.net/detail/u014594922/9671368
使用中可能會遇到mysql-connector-javaxxx.jar的版本太低的問題,升級換一個新的版本即可。