JAVA 数据库连接池

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

  

posted @ 2018-11-28 16:30  雷神约  阅读(192)  评论(0编辑  收藏  举报