JDBC Tomcat Pool + jndi

本文介绍如何在Tomcat中配置数据库连接池,并通过Servlet进行测试。首先,在META-INF目录下创建context.xml文件,设置数据库连接参数,包括驱动、URL、用户名、密码等。接着,将项目部署至Tomcat,实现连接池。最后,编写Servlet测试类,使用JNDI技术获取连接,执行SQL查询并展示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:在 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();
		}
	}
}

第四步:测试
项目结构:
请忽略无用的东西
浏览器端展示:
已获取到数据并进行展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值