JNDI配置

news/2024/12/5 4:34:23/

1. JNDI配置

第一步需要导入数据库连接需要用到的jar包。

1.1 web.xml配置

在java web项目中的WEB-INF目录下的web.xml中添加数据库资源的引用。

<!-- 配置连接池JNDI的引用 --><resource-ref><description>MySQL DataBase Connection</description><res-ref-name>jdbc/mysql</res-ref-name><!-- name应于context.xml中引用的名字相同 --><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>

1.2 context.xml配置

在java web项目中的META-INF目录下的context.xml中添加数据库配置资源,如果没有context.xml文件可以自行创建并添加。在tomcat运行时会自动的将项目下的该文件配置信息加载到服务器的contex.xml文件中,所以不需要像网上说的那样都配置。

<?xml version="1.0" encoding="UTF-8"?>
<Context><!-- 连接池属性配置 --><!-- name应于web.xml中引用的名字相同,maxTotal是最大连接人数maxIdle最大等待人数,maxWaitMillis最大的等待时间(以毫秒计算)--><Resource name="jdbc/mysql" auth="Container"type="javax.sql.DataSource"driverClassName="com.mysql.cj.jdbc.Driver"url="jdbc:mysql://localhost:3306/test"username="root" password="root"maxTotal="10" maxIdle="4" maxWaitMillis="6000"/></Context>

1.3 连接池工具类

import java.sql.Connection;
import java.sql.SQLException;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;public class ConnectionPoolUtil {// 内容环境固定写法private static final String ENVIRONMENT = "java:comp/env/";// web.xml配置文件中数据库资源的名称,需要web.xml和context.xml都一致private static final String RESOURCE_NAME = "jdbc/mysql";private static DataSource dataSoruce = null;static {try {// 初始化上下文内容对象Context context = new InitialContext();// 在上下文内容对象中寻找内容环境和配置信息dataSoruce = (DataSource)context.lookup(ENVIRONMENT.concat(RESOURCE_NAME));// 关闭内容对象context.close();} catch (NamingException e) {e.printStackTrace();}}/*** 获取数据库连接* @return 数据库连接对象*/public static final Connection getConnection() {Connection connection = null;try {// 获取数据库连接connection = dataSoruce.getConnection();}catch (SQLException e) {e.printStackTrace();}return connection;}}

2. JNDI测试

创建一个jsp文件,编写测试。连接池因为需要内容对象,所以只能通过服务器加载来进行测试。

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="javax.naming.*,javax.sql.*,java.sql.*,util.ConnectionPoolUtil"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%Connection connection = ConnectionPoolUtil.getConnection();String sql = "select * from user";PreparedStatement preparedStatement;try {preparedStatement = connection.prepareStatement(sql);ResultSet resultSet = preparedStatement.executeQuery();int id;String name = null,sex = null;while(resultSet.next()) {id = resultSet.getInt("id");name = resultSet.getString("name");sex = resultSet.getString("sex");out.println("id:"+id+"name:"+name+"sex:"+sex+"<br>");}resultSet.close();preparedStatement.close();// 若想测试最大连接人数可以把下面这句注释掉,一直占用连接资源connection.close();} catch (SQLException e) {e.printStackTrace();}
%>
</body>
</html>

http://www.ppmy.cn/news/682882.html

相关文章

JAVA中JDBC的配置和简单使用

1. 导入jar包 一般在安装mysql时在mysql的文件夹下会有对应的数据库驱动jar包&#xff0c;可以自己找一下&#xff0c;然后手动导入jar包 或者使用maven导入jar包的依赖 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</…

魔力宝贝服务器列表修改,魔力宝贝修改代码一览表GM.docx

.. 魔力宝贝GM代码 宠物 nr additemmax 19505] [nr additemmax 19077] 打开crossgate\gmsv\setup.cf.XXX 打开这个文件 为1指定GM使用 chatmagiccdkeycheck=1 为0开放所有人物为GM [每个人都可以用GM命令] chatmagiccdkeycheck=0 chatmagicpasswd=nr NR为GM的密码,可以自行修改…

计算机管理哪个是主板驱动,请问一下这里面哪个是主板驱动?

2005-07-14 大家请指教,谢谢! 任务&#xff2e;&#xff30;&#xff23;地点&#xff1a;魔力暑期活动员&#xff3b;&#xff17;&#xff10;&#xff0e;&#xff18;&#xff14;&#xff3d;打到水晶地点&#xff1a;魔&#xff1a;灵堂、狗洞、海底、索奇亚沙漠武术仙人…

普遍语言、国际语言和数学家皮亚诺(Peano)——读皮亚诺之一

普遍语言、国际语言和数学家皮亚诺&#xff08;Peano&#xff09;——读皮亚诺之一 自德国人莱布尼兹有了普遍语言的设想之后&#xff0c;逻辑的现代发展&#xff0c;在欧洲&#xff0c;好像走的一条从西到东的路径。英国人布尔用代数来设想逻辑&#xff0c;开创出逻辑学现代发…

malloc 字符串

malloc内存管理机制&#xff1a; ​ 当首次使用malloc申请内存时&#xff0c;malloc会向操作系统申请内存&#xff0c;操作系统会直接给malloc分配33页&#xff08;一页 4096字节&#xff09;内存交给malloc管理。但是不意味着你可以越界访问&#xff0c;因为malloc可能会把使…

numpy.meshgrid()用法

用于生成网格点坐标矩阵 语法&#xff1a;X,Y numpy.meshgrid(x, y) 输入的x&#xff0c;y&#xff0c;就是网格点的横纵坐标列向量&#xff08;非矩阵&#xff09; 输出的X&#xff0c;Y&#xff0c;就是坐标矩阵。 import numpy as np import matplotlib.pyplot as pltx …

批量对热门文章发送评论,实现博客高效引流

许多人通过评论别人博客&#xff0c;提升自己博客的流量 随便点开一篇文章都可以找到相似话语 想拥有&#xff0c;百万流量指日可待了 先确定评论什么样的文章 选择平台首页文章&#xff0c;文章多&#xff0c;但杂乱选择排行榜文章&#xff0c;热度高&#xff0c;但数量有限…

2021年宜春民营企业百强排行榜:樟树市企业营收比重最大(附年榜TOP100详单)

榜单解读&#xff1a; 宜春市工商联发布了“2021宜春民营企业百强榜单”。榜单参照国际通行做法&#xff0c;以企业上一年度营业收入为依据进行排序&#xff0c;榜单企业总营收约为1797.97亿元。 依据榜单可知&#xff0c;仁和(集团)发展有限公司、江西济民可信药业有限公司这2…