JavaWeb-JDNI数据库连接池使用及测试
原创约 1020 字大约 3 分钟...
260-JavaWeb-JDNI数据库连接池使用及测试.md
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
前置条件
新建了一个JAVA-WEB项目,并运行成功
mysql数据库可以通过可视化工具连接成功
使用工具ECLIPSE
项目配置
mysql-connector-java-5.1.39-bin.jar mysql的项目驱动放置在WEB-INF的lib目录下
WEB-INF目录下的web.xml的配置如下,仅供参考,按自己所需自行更改
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>tickets</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
<resource-ref>
<description>jdbc/mysql</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
- META-INF目录下的context.xml配置如下,仅供参考,按自己所需更改
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="123456"
url="jdbc:mysql://localhost:3306/tickets"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
maxActive="4" />
</Context>
- 在 net.tencent.tickets.util目录包新建如下类
package net.tencent.tickets.util;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
/**
*
* <p>Title: DBUtils_pool</p>
* <p>
* Description:
* 启用连接池技术的DBUtil工具类
*
* 步骤:
* 1.在META-INF目录下创建配置文件context.xml
* 2.编写DBUtils_pool工具类
* 在里面定义getConnection方法
*
* 3.这个方法定义完之后不可以马上写main方法测试,因为这个池子是基于Tomcat容器实现的,所以
* 必须把web应用部署到Tomcat服务器上之后才可以测试
* </p>
* @author xianxian
* @date 2019年9月5日
*/
public class DBUtils_pool {
public static Connection getConnection() {
Connection conn = null;
try {
// //1.上下文 实例化Context对象,其实读取Context.xml文件中的资源
Context context = new InitialContext();
// 2.查找数据源,参数格式:java:comp/env/ + context.xml中配置的name属性值 使用lookup方法寻找数据源资源并且造型成DataSource
DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/mysql");
//3.从数据源中获取连接
conn = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
*
* <p>Title: release</p>
* <p>
* Description:
* 释放资源的方法
* //4.归还连接
* </p>
* @param conn
* @param stmt
* @param rs
*/
public static void release(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 开启事务
* @param conn
*/
public static void beginTransaction(Connection conn)
{
try {
conn.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 提交事务
* @param conn
*/
public static void commitTransaction(Connection conn)
{
try {
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 回滚事务
* @param conn
*/
public static void rollbackTransaction(Connection conn)
{
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- 经过如下步骤JDNI数据库连接池配置完成
测试JDNI
- 在 net.tencent.tickets.util.test 目录包新建如下类
package net.tencent.tickets.util.test;
import java.io.IOException;
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 net.tencent.tickets.util.DBUtils_pool;
@WebServlet("/TestDBUtils_pool")
public class TestDBUtils_pool extends HttpServlet{
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DBUtils_pool dbUtils_pool = new DBUtils_pool();
System.out.println("dbUtils_pool: " + dbUtils_pool.getConnection());
}
}
- 在 webapp文件夹下新建TestDBUtils_pool.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="TestDBUtils_pool">点击获取数据库连接</a>
</body>
</html>
启动TOMcatServer并在启动成功后在浏览器中输入 http://localhost:8080/tickets/TestDBUtils_pool.jsp 仅供参考,按自己所需更改
根据浏览器提示点击

- 在跳转后查看Eclipse的控制台

- 如下图所示则表示连接池配置成功

分割线
相关信息
以上就是我关于 JavaWeb-JDNI数据库连接池使用及测试 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。
扩展知识
分割线
Powered by Waline v2.15.4