tomcat中MySQL连接池配置

本文提供了一种通过Tomcat管理界面而非直接编辑server.xml来配置数据源的方法,避免了因版本不同导致的配置问题。步骤包括安装admin包、配置数据源及引用说明等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于直接编辑server.xml配置连接池很容易出现错误,我估计是tomcat版本问题,没个版本可能配置有点点差别,所以我建议使用在http://localhost/admin/中进行数据源的配置,下载tomcat的admin包,安装过程如下

  下载下来进行解压,得到三个文件,和两个包,一个叫conf包,另外一个叫做server包。

  接着进行安装:那三个单独的文件不用管;把conf\Catalina\localhost\下面的一个配置文件admin.xml放在你tomcat安装目录下面的Tomcat 5.5\conf\Catalina\localhost\这个路径下,即跟host-manage.xml,manager.xml放在一起;再把server\webapps\下面的admin包拷贝到你的tomcat安装目录下的Tomcat 5.5\server\webapps\这个路径下面跟host-manager,manager包放在一块。

在conf\Catalina\localhost\下要建立一个跟自己项目名字一样的.xml文件,内容为
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <Context>   
  3.   <Resource   
  4.     name="jdbc/oracle"  
  5.     type="javax.sql.DataSource"  
  6.     driverClassName="oracle.jdbc.driver.OracleDriver"  
  7.     password="limeng"  
  8.     maxIdle="2"  
  9.     maxWait="5000"  
  10.     username="limeng"  
  11.     url="jdbc:oracle:thin:@192.168.1.134:1521:zhpt"  
  12.     maxActive="4"/>   
  13.   <ResourceLink   
  14.     global="jdbc/feng"  
  15.     name="jdbc/feng"  
  16.     type="javax.sql.DataSource"/>   
  17. </Context>  
<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource
    name="jdbc/oracle"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    password="limeng"
    maxIdle="2"
    maxWait="5000"
    username="limeng"
    url="jdbc:oracle:thin:@192.168.1.134:1521:zhpt"
    maxActive="4"/>
  <ResourceLink
    global="jdbc/feng"
    name="jdbc/feng"
    type="javax.sql.DataSource"/>
</Context>
  安装搞定,重新启动tomcat,在地址栏输入http://localhost/admin/,在出现的截面里面输入你安装tomcat的时候你输入的用户名和密码。

  登录成功后,会出现Tomcat 的web应用管理界面(Tomcat Web Server Administration Tool)。

  然后在左边的目录树点击“Data Sources”项,右边可以看到JNDI配置的页面。

  在右上角的下拉框中选择“Create New Data Source”,接下来填写配置信息:

JNDI Name: jdbc/feng /*连接池的名称*/
Data Source URL: jdbc:mysql://localhost:3306/bbs /*bbs为数据库的名称*/
JDBC Driver Class: com.mysql.jdbc.Driver
User Name: root
Password: feng
Max. Active Connections: 可用默认值
Max. Idle Connections: 可用默认值
Max. Wait for Connection: 可用默认值
Validation Query: 可不填写。

  然后,按下“save”按钮保存。

  再按下“Commit Changes”按钮将配置更改提交完成。

  下面这步比较重要,不加就会出现错误

  在<Context></Context>的描述中加上本web应用对全局连接池的引用说明,如下文字:
  1. <ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>   
<ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/> 
  一般都是加在虚拟目录里

  类似下面
  1. <Context   
  2. crossContext="true"  
  3. docBase="D:/feng"  
  4. path="/feng"  
  5. reloadable="true">   
  6.   
  7.   
  8. <ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>   
  9. </Context>  
<Context
crossContext="true"
docBase="D:/feng"
path="/feng"
reloadable="true">


<ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>
</Context>
  上面完成后,还需要配置对应虚拟目录WEB应用的web.xml

  内容可以参考下面
  1. <web-app>   
  2. <resource-ref>   
  3. <description>MySQL DataSource example</description>   
  4. <res-ref-name>jdbc/feng</res-ref-name>   
  5. <res-type>javax.sql.DataSource</res-type>   
  6. <res-auth>Container</res-auth>   
  7. </resource-ref>   
  8. </web-app>  
<web-app>
<resource-ref>
<description>MySQL DataSource example</description>
<res-ref-name>jdbc/feng</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
  保存D:\feng\WEB-INF\web.xml 文件

  应用示例
  1. <%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>   
  2. <%@ page contentType="text/html; charset=GB2312"%>   
  3. <html>   
  4. <head><title>DataSourse Connection Test</title></head>   
  5. <body>   
  6. <%   
  7. try{   
  8. Connection con;    
  9. Statement stmt;    
  10. ResultSet rs;    
  11.   
  12. Context ctx = new InitialContext();    
  13. DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/feng");    
  14. con=ds.getConnection();    
  15.   
  16. stmt=con.createStatement();    
  17. rs=stmt.executeQuery("select * from user");    
  18. while(rs.next()){   
  19. out.println(rs.getString(1));    
  20. %>   
  21. <br>   
  22.   
  23. <%   
  24.   
  25. out.print(rs.getString(2));    
  26. }   
  27. rs.close();    
  28. stmt.close();    
  29. con.close();    
  30.   
  31. }catch(Exception e){   
  32. out.print(e.getMessage());    
  33. }   
  34.   
  35. %>    
  36.   
  37. </body>   
  38. </html>  
<%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html; charset=GB2312"%>
<html>
<head><title>DataSourse Connection Test</title></head>
<body>
<%
try{
Connection con; 
Statement stmt; 
ResultSet rs; 

Context ctx = new InitialContext(); 
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/feng"); 
con=ds.getConnection(); 

stmt=con.createStatement(); 
rs=stmt.executeQuery("select * from user"); 
while(rs.next()){
out.println(rs.getString(1)); 
%>
<br>

<%

out.print(rs.getString(2)); 
}
rs.close(); 
stmt.close(); 
con.close(); 

}catch(Exception e){
out.print(e.getMessage()); 
}

%> 

</body>
</html>
基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值