
大前提是给mysql连接jar包引入到lib包里面
第一步:在META-INF下面建一个context.xml文件 ps:名字是固定的
第二步:在里面写入相关内容
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
driverClassName="com.mysql.jdbc.Driver" 数据库驱动
url="jdbc:mysql://localhost:3306/jdjk" 数据库连接
username="root" 用户名
password="" 密码
maxActive="50" 最大活动个数
maxIdle="20" 最大替补个数
name="test" 线程池名
auth="Container" 由哪个发起Container 说明是tomcat
maxWait="10000" 每一个连接最大的等待时间
type="javax.sql.DataSource" 连接返回的数据类型
/>
</Context>
代码示例:
package com.zhileiedu.servlet;
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;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/user")
public class ServletUser extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
// 初始化上下文
Context context = new InitialContext();
// 连接数据源(java:/comp/env/test)是固定的写法,后面是test,是连接池的名称
DataSource dataSource = (DataSource) context.lookup("java:comp/env/test");
// 获取数据库连接 (通过连接池获取连接,相当于驱动管理)
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("select * from jdjk_com");
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
System.out.println(resultSet.getInt(1));
}
resultSet.close();
connection.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}