第一步:在 web 项目的 META-INF 中存放 context.xml,在 context.xml 编
写数据库连接池相关属性,导入连接数据库的jar包
<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/ibtais"
username="root"
password="root"
maxActive="50"
maxIdle="30"
name="ybjt"
auth="zxh"
maxWait="10000"
type="javax.sql.DataSource"
/>
</Context>
数据库信息:
create table t_users(
uid int(10) not null auto_increment comment '编号',
uname varchar(100) not null comment '姓名',
pwd varchar(100) not null comment '密码',
sex char(2) not null comment '性别',
age int(3) comment '年龄',
birth date comment '生日',
primary key(uid)
)
insert into t_users values (default,'提莫队长','123456','1',12,'2018-01-20');
insert into t_users values (default,'德邦队长','123456','1',18,'2018-01-20');
insert into t_users values (default,'德莱厄斯','123456','0',33,'2018-01-20');
insert into t_users values (default,'召唤峡谷','123456','1',23,'2018-01-20');
insert into t_users values (default,'勇者联盟','123456','0',56,'2018-01-20');
第二步:把项目发布到 tomcat 中,数据库连接池产生了。
第三步:编写servlet测试类。
package com.ybjt.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
@WebServlet("/pool")
public class JDBCTomcatPool extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
try {
//jndi技术获取数据库连接对象
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/ybjt");
Connection con = ds.getConnection();
PreparedStatement ps = con.prepareStatement("select * from t_users");
ResultSet rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString(2));
out.write(rs.getString(2)+"<br/>");
}
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
out.flush();
out.close();
}
}
}
第四步:测试
项目结构:
浏览器端展示: