首先项目的结构及所用到的jar包如图:
主要用到jdbc和jstl的jar包,大家可自行去相应网站下载
一、数据库和数据表的创建
1.建库语句:
create database test;
2.建表语句:
CREATE TABLE `t_users` (
`user_name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`password_md5` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
二、eclipse配置数据库连接池
首先创建一个动态web项目
1.把jdbc所用到的jar包复制到/web-inf/lib目录下,如图:
2.在meta-inf下创建一个context.xml文件,并输入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/test" reloadable="true">
<!-- 配置数据源 -->
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100"
maxldle="30" maxWait="10000" name="jdbc/test" password="root" type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/test?autoReconnect=true" username="root">
</Resource>
</Context>
<Resource属性说明>
1)name:指定Resource的JNDI名字。
2)auth:指定管理Resource的Manager,它有两个可选值:Container和Application。Container表示由容器来创建和管理Resource,Application表示由web应用来创建和管理Resource。
3)type: 指定Resource的Java类名。
4)username:指定连接数据库的用户名。
5)password:指定连接数据库的口令。
6)driverClassName:指定连接数据库的JDBC驱动器中的Driver实现类的名字。
7)url:指定连接数据库的URL,127.0.0.1是要连接的数据库服务器的ip,3306是数据库服务器端口,BookDB是数据库名称。
8)maxActive:指定数据库连接池中处于活动状态的数据库连接的最大数目,取值为0,表示不受限制。
9)maxIdle:指定数据库连接池中处于空闲状态的数据库连接的最大数目,取值为0,表示不受限制。
10)maxWait:指定数据库连接池中的数据库连接处于空闲状态的最长时间(以毫秒为单位),超过这一时间,将会抛出异常。取值为-1,表示可以无限期等待。
3.配置web.xml
在<web-app></web-app>之间加入如下代码:
<resource-ref>
<description>MySQL DBCP</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>属性说明:
1)description:对所引用的资源的说明。
2)res-ref-name:指定所引用资源的JNDI名字,与<Resource>元素中的name属性对应。
3)res-type:指定所引用资源的类名,与<Resource>元素中的type属性对应。
4)res-auth:指定管理所引用资源的Manager,与<Resource>元素中的auth属性对应。
4.配置server.xml文件
在tomcat\conf下找到server.xml文件,在<GlobalNamingResources></GlobalNamingResources>之间加入如下内容:
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?characterEncodering=utf-8"
username="root"
password="root"
maxActive="200"
maxIdle="50"
maxWait="3000"/>
在<Host></Host>之间加入如下内容:
<Context docBase="D:\eclipse-workspace\loginRegister\WebContent"
path="/LoginRegister" reloadable="true" source="org.eclipse.jst.j2ee.server:test">
<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>
</Context>
<Context>属性说明:
1)docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径。如果Web应用采用开放目录结构,则指定Web应用的根目录;如果Web应用是个WAR文件,则指定WAR文件的路径。
2)path:指定访问该Web应用的URL入口。
3)reloadable:如果这个属性为true,Tomcat服务器会在运行状态下监视classes下文件的改动和WEB-INF/web.xml文件的改动,监测到文件被改动,服务器会自动重新加载Web应用。
4)source:
<ResourceLink>属性说明:
1)global:被连接的连接全局资源的名称。
2)name:创建的资源连接的名称,相对于java:comp/env context。
3)type:当web应用在该资源连接上进行查找时,返回的Java类名的全称。
至此数据库连接池配置完
三、实现访问数据库的DBServlet类
实现代码如下:
import java.io.IOException;
import java.sql.Connection;