本文以目前最流行的MySQL为例讲解通过Tomcat连接池连接MySQL数据库的基本步骤如果你了解MySQL可跳过第一步
在进行Tomcat连接池配置前先解压缩mysqlconnectorjavaxxxzip将其中的mysqlconnectorjavaxxxxxjar取出置于\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: ant
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 HostUserPassword FROM user;
++++
| Host | User | Password |
++++
| localhost | root | *DBECCADEECDE |
| % | jsp | *CABFDACDCBBEAEF |
| localhost | jcc | *CABFDACDCBBEAEF |
++++
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: ant
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\serverxml的之间加入以下代码
factorymonsdbcpBasicDataSourceFactory
maxActive
maxIdle
maxWait
username jcc
password
driverClassName commysqljdbcDriver
urljdbc:mysql://localhost/jcc
Tomcat进行如下配置
在\conf\serverxml的之间加入以下代码
三在/下新建MySQL数据库连接文件Selectjsp
Selectjsp源码如下
);while(rsnext()){outprint(rsgetString()+ );outprint(rsgetString()+
);}rsclose();stmtclose();connclose();}catch(Exception e){outprint(e);}%>
四运行显示结果如下
Userlist
Corebit
Ivan
则表示数据库连接成功!恭喜!恭喜!
否则请检查数据库连接器版本出错可能性比较高!
*注
Tomcat连接池中部分参数说明如下
maxActive=
maxIdle=
maxWait=
jdbc:mysql://localhost/jcc
PS如果最大数据库活跃连接数过大可想而知内存占用量是非常惊人的!如果空闲连接数过大则资源利用率低连接池长期未释放可导致连接池结点异常所以选好maxActive和maxIdle是连接池性能的关键因素当然这取决于服务器环境
*附
连接池运作原理
在实际应用开发中特别是在WEB应用系统中如果JSPServlet或EJB使用JDBC直接访问数据库中的数据每一次数据访问请求都必须经历建立数据库连接打开数据库存取数据和关闭数据库连接等步骤而连接并打开数据库是一件既消耗资源又费时的工作如果频繁发生这种数据库操作系统的性能必然会急剧下降甚至会导致系统崩溃数据库连接池技术是解决这个问题最常用的方法在许多应用程序服务器(例如WeblogicWebSphereJBoss)中基本都提供了这项技术无需自己编程但是深入了解这项技术是非常必要的
数据库连接池技术的思想非常简单将数据库连接作为对象存储在一个Vector对象中一旦数据库连接建立后不同的数据库访问请求就可以共享这些连接这样通过复用这些已经建立的数据库连接可以克服上述缺点极大地节省系统资源和时间
数据库连接池的主要操作如下
()建立数据库连接池对象(服务器启动)
()按照事先指定的参数创建初始数量的数据库连接(即空闲连接数)
()对于一个数据库访问请求直接从连接池中得到一个连接如果数据库连接池对象中没有空闲的连接且连接数没有达到最大(即最大活跃连接数)创建一个新的数据库连接
()存取数据库
()关闭数据库释放所有数据库连接(此时的关闭数据库连接并非真正关闭而是将其放入空闲队列中如实际空闲连接数大于初始空闲连接数则释放连接)
()释放数据库连接池对象(服务器停止维护期间释放数据库连接池对象并释放所有连接)
希望本文能对你使用Tomcat连接池连接MySQL数据库有所帮助!