JAVA 数据库连接池

大前提是给 mysql 连接 jar 包引入到 lib 包里面

第一步:在 META-INF 下面建一个 context.xml 文件 ps: 名字是固定的 

第二步:在里面写入相关内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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>

  

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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();
        }
    }
}