本文以目前最流行的MySQL為例
講解通過Tomcat連接池連接MySQL數據庫的基本步驟
如果你了解MySQL可跳過第一步
在進行Tomcat連接池配置前
先解壓縮mysql
connector
java
xxx
zip
將其中的mysql
connector
java
x
x
xxx
jar取出
置於\common\lib中
接下來
讓我們一起進入精彩的Tomcat配置之旅
一新建用戶及數據庫 操作步驟如下
C:\Documents and Settings\Administrator>d:
D:\>cd mysql\bin
D:\MySQL\bin>mysql
u root
p
Enter password: *******
Welcome to the MySQL monitor
Commands end with ; or \g
Your MySQL connection id is
to server version:
a
nt
Type
help;
or
\h
for help
Type
\c
to clear the buffer
mysql> GRANT ALL PRIVILEGES ON jcc
* TO jcc@localhost IDENTIFIED BY
WITH GRANT OPTION;
Query OK
rows affected (
sec)
mysql> USE mysql;
Database changed
mysql> SELECT Host
User
Password FROM user;
+
+
+
+
| Host | User | Password |
+
+
+
+
| localhost | root | *
D
B
EC
CA
DE
E
C
DE
|
| % | jsp | *C
AB
FD
A
C
D
C
B
B
EA
E
F
|
| localhost | jcc | *C
AB
FD
A
C
D
C
B
B
EA
E
F
|
+
+
+
+
rows in set (
sec)
mysql> exit
Bye
D:\MySQL\bin>mysql
u jcc
p
Enter password: **********
Welcome to the MySQL monitor
Commands end with ; or \g
Your MySQL connection id is
to server version:
a
nt
Type
help;
or
\h
for help
Type
\c
to clear the buffer
mysql> CREATE DATABASE jcc;
Query OK
row affected (
sec)
mysql> USE jcc;
Database changed
mysql> CREATE TABLE user(
> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
> name VARCHAR(
) NOT NULL
> );
Query OK
rows affected (
sec)
mysql> INSERT INTO user (name) VALUES (
Corebit
);
Query OK
row affected (
sec)
mysql> INSERT INTO user (name) VALUES (
Ivan
);
Query OK
row affected (
sec)
mysql> SELECT * FROM user;
+
+
+
| id | name |
+
+
+
|
| Corebit |
|
| Ivan |
+
+
+
rows in set (
sec)
mysql>
二配置Tomcat連接池 Tomcat
進行如下配置
在\conf\server
xml的
之間加入以下代碼
factory mons
dbcp
BasicDataSourceFactory
maxActive
maxIdle
maxWait
username jcc
password
driverClassName com
mysql
jdbc
Driver
url jdbc:mysql://localhost/jcc
Tomcat
進行如下配置
在\conf\server
xml的
之間加入以下代碼
三在/下新建MySQL數據庫連接文件Selectjsp Select
jsp源碼如下
); while(rs
next()){ out
print(rs
getString(
)+
); out
print(rs
getString(
)+
); } rs
close(); stmt
close(); conn
close();}catch(Exception e){ out
print(e);}%>
四運行顯示結果如下 User
list
Corebit
Ivan
則表示數據庫連接成功!恭喜!恭喜!
否則請檢查數據庫連接器版本
出錯可能性比較高!
*注
Tomcat連接池中
部分參數說明如下
maxActive=
maxIdle=
maxWait=
jdbc:mysql://localhost/jcc
PS
如果最大數據庫活躍連接數過大
可想而知
內存占用量是非常驚人的!如果空閒連接數過大
則資源利用率低
連接池長期未釋放
可導致連接池結點異常
所以選好maxActive和maxIdle是連接池性能的關鍵因素
當然這取決於服務器環境
*附
連接池運作原理
在實際應用開發中
特別是在WEB應用系統中
如果JSP
Servlet或EJB使用JDBC直接訪問數據庫中的數據
每一次數據訪問請求都必須經歷建立數據庫連接
打開數據庫
存取數據和關閉數據庫連接等步驟
而連接並打開數據庫是一件既消耗資源又費時的工作
如果頻繁發生這種數據庫操作
系統的性能必然會急劇下降
甚至會導致系統崩潰
數據庫連接池技術是解決這個問題最常用的方法
在許多應用程序服務器(例如
Weblogic
WebSphere
JBoss)中
基本都提供了這項技術
無需自己編程
但是
深入了解這項技術是非常必要的
數據庫連接池技術的思想非常簡單
將數據庫連接作為對象存儲在一個Vector對象中
一旦數據庫連接建立後
不同的數據庫訪問請求就可以共享這些連接
這樣
通過復用這些已經建立的數據庫連接
可以克服上述缺點
極大地節省系統資源和時間
數據庫連接池的主要操作如下
(
)建立數據庫連接池對象(服務器啟動)
(
)按照事先指定的參數創建初始數量的數據庫連接(即
空閒連接數)
(
)對於一個數據庫訪問請求
直接從連接池中得到一個連接
如果數據庫連接池對象中沒有空閒的連接
且連接數沒有達到最大(即
最大活躍連接數)
創建一個新的數據庫連接
(
)存取數據庫
(
)關閉數據庫
釋放所有數據庫連接(此時的關閉數據庫連接
並非真正關閉
而是將其放入空閒隊列中
如實際空閒連接數大於初始空閒連接數則釋放連接)
(
)釋放數據庫連接池對象(服務器停止
維護期間
釋放數據庫連接池對象
並釋放所有連接)
希望本文能對你使用Tomcat連接池連接MySQL數據庫有所幫助!
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28444.html