Tomcat配置數據源,由於項目經常訪問數據庫,需要不斷地打開關閉,這就耗費了大量的資源。所以用數據源的方式訪問數據庫。
大體步驟:
- 配置server.xml
- 配置項目所在的WebRoot/WEB-INF/web.xml
- 在Servlet或者JSP中調用
一、
在server.xml中的<host>標簽中配置,
1 <Host name="localhost" appBase="webapps" 2 unpackWARs="true" autoDeploy="true"> 3 <Context path="/MyWeb3" docBase="D:\MyWorkspace\MyWeb3\WebRoot" reloadable="true"> 4 <Resource name="jdbc/haoDB" auth="Container" type="javax.sql.DataSource" 5 maxActive="100" maxIdle="30" maxWait="10000" 6 username="root" password="root" driverClassName="com.mysql.jdbc.Driver" 7 url="jdbc:mysql://192.168.1.18:3306/cuihao"/> 8 </Context> 9</Host>
其中的name屬性是數據源名稱,通常采取jdbc/**.driverClassName屬性是驅動程序名稱。
username,password,數據庫名稱和密碼(要輸入正確,不要有空格)
url:訪問的數據庫路徑,這里要注意!
maxActive屬性是並發連接的最大數。設置為0則無限制。
maxWait屬性是等待連接的最大連接的時間。
maxIdle屬性是連接池中空閑的連接的個數。
二、
配置項目所在的WebRoot/WEB-INF/web.xml
1 <!-- 數據源 --> 2 <description>MySQL Test App</description> 3 <resource-ref> 4 <description>DB Connection</description> 5 <res-ref-name>jdbc/haoDB</res-ref-name> 6 <res-type>javax.sql.DataSource</res-type> 7 <res-auth>Container</res-auth> 8 </resource-ref>
<res-ref-name>標簽內的是數據源的名稱,與(一)中server.xml的<Resource>標簽內的name相同。
三、Servlet中調用
final String JDBCNAME = "java:comp/env/jdbc/haoDB";
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup(JDBCNAME);
