Tomcat数据源总结
一、數據源的由來
JDBC操作主要由以下幾步組成:
(1)Class.forName();
(2)Connection con? = DriverManager.getConnection();
(3)PreparedStatement stat = con.prepareStatement(sql);
(4)stat.executeQuery();
(5)con.close();
很顯然,(1)(2)(5)步是每次JDBC操作都要執行的,重復執行是非常耗時的,因此為了解決重復操作的問題,引入了數據源。
?
二、數據源介紹
存在一個數據庫連接池,在池中存在多個數據庫連接,用戶對數據庫操作時取出一個,用完放回連接池中。
考慮因素:
(1)最小連接數:連接池中最小的連接個數;
(2)最大連接數:連接池中最大連接個數;
(3)最大等待時間:不能連接時最長等待時間;
Tomcat對數據庫連接池支持;
?
三、JNDI(Java Naming Directory Interface)
1.通過DataSource的名字查找對應的DataSource;
2.通過一個DataSource在連接池中獲得一個Connection;
?
?
?
四、配置步驟
?
A 全局數據源的配置
全局數據源意思是配置了一個數據源后任何web應用都能夠訪問。
(1)將數據庫的驅動程序復制到tomcat\lib中;
(2)在server.xml中加入:
<Context path="/Test" docBase="E:\JAVA WEB" reloadable="true">????<!-- 數據源需要在Context中配置-->
???<Resource name="jdbc/xiazdong"????????????????????????????????????<!-- 數據源名稱-->
????auth="Container"
????type="javax.sql.DataSource"
????maxActive="100"????????????????????????????????????????<!-- 最大連接數-->
????maxIdle="30"????????????????????????????????????????????<!-- 最小連接數-->
????maxWait="10000"????????????????????????????????????<!-- 最大等待時間-->
????username="root"
????password="123456"
????driverClassName="com.mysql.jdbc.Driver"
????url="jdbc:mysql://localhost:3306/xiazdong"/>
??</Context>
(3)在web.xml中加入:
<resource-ref>
??<description>DB Connection</description>
??<res-ref-name>jdbc/xiazdong</res-ref-name>
??<res-type>javax.sql.DataSource</res-type>
??<res-auth>Container</res-auth>
?</resource-ref>
?
B 局部數據源配置
(1)將驅動器復制到tomcat/lib中;
(2)在conf/catalina/localhost/test.xml中添加:
[html]?view plaincopy作為<Context>的子元素;
?
?
五、主要操作步驟
import javax.naming.*; import javax.sql.*; import java.sql*;Context ctx = new InitialContext();
DataSource ds = ctx.lookup("java:comp/env/jdbc/xiazdong");
Connection con? = ds.getConnection();
可以很清楚的看出,從以上代碼完全看不出操作的是哪個數據庫,配置都在配置文件中;
轉載于:https://www.cnblogs.com/Coda/p/4231625.html
總結
以上是生活随笔為你收集整理的Tomcat数据源总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GridView RowDeleting
- 下一篇: ProgressDialog使用总结