大前提是给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(); } } }