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(); } } } |