tomcat5.5+mysql数据库连接池 的相关配置

mysql 依赖 驱动。5 - 8都有 立即下载

 

1 环境描述


  JDK 1.5
  Tomcat 5.5.4
  MySQL 4.0.20
  MySQL JDBC 3.0.15
  Commons dbcp 1.2.1

2 准备工作


  安装JDK, Tomcat, MySQL

  从http://dev.mysql.com/downloads/下载mysql-connector-java-3.0.15-ga.zip,将其中的mysql-connector-java-3.0.15-ga-bin.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
  从http://jakarta.apache.org/commons/dbcp/下载commons-dbcp-1.2.1.zip,将其中的commons-dbcp-1.2.1.jar放到jre/lib/ext和Tomcat 5.5/common/lib里面。
(以上下载的驱动包版本不一定要跟上面一样)


3 配置Tomcat和项目的web.xml文件
  在Tomcat 5.5/conf/server.xml的<GlobalNamingResources>中添加:
<Resource name="JDBC for MySQL" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" password="" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost/test" maxActive="4"/>。


  在Tomcat 5.5/webapps/test/WEB-INF/web.xml(就是需要使用连接池的web项目的web.xml文件)的<web-app>中添加:
<resource-ref>
<description>MySQL Connection Pool</description>
<res-ref-name>JDBC for MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


 在Tomcat 5.5/webapps/test/META-INF/context.xml的<Context>中添加:
<ResourceLink name="JDBC for MySQL" global="JDBC for MySQL" type="javax.sql.DataSourcer"/>
项目中没有context.xml文件的话,也可以不要改这一步


4 测试,在JAVA中使用数据库连接池

第一步: 创建数据库并在tomcat下配置链接池
1.创建数据库
在mysql下创建名为testdb的数据库,在testdb下创建数据表test_table.字段id,name
2.tomcat配置
我们在C:\Program Files\Tomcat 5.5.7\conf\content.xml文件中添加如下数据库链接池配置,如果没有就新建一个content.xml,注意tomcat版本要5.5以上,5.5以下不支持content.xml。

<Context>
        <Resource name="jdbc/testdb" 
        auth="Container" 
        type="javax.sql.DataSource" 
        driverClassName="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost/mytestdb" 
        username="root" 
        password="******" 
        maxActive="100" 
        maxIdle="30" 
        maxWait="10000" 
        ></Resource> 
</Context>

红字的地方要根据实际情况改变,比如数据库名,用户名,密码,如果使用的是其他类型的数据库,驱动名也要改。

第二步:编写javaBean读取tomcat下的content.xml

javaBean 文件DataBase.java代码

 

package withouttears.bean;

import java.util.HashMap;
import java.sql.*;
//JNDI有两个核心接口Context和DirContext,
//Context中包含了基本的名字操作,而DirContext则将这些操作扩展到目录服务。
import javax.naming.Context;
import javax.naming.InitialContext;
//数据库资源的连接工厂是javax.sql.DataSource对象,
//它可以创建java.sql.Connection数据库连接对象。
import javax.sql.DataSource;
//目前您可以从Java开发者连接(http://java.sun.com/products/jdbc/download.html#rowsetcobundle1_0) 
//下载CachedRowSet的实现。下载并解压缩安装文件后,将"rowset.jar"文件放到您的类目录下。
//CachedRowSet在sun.jdbc.rowset包中。
import sun.jdbc.rowset.CachedRowSet;
/** *//**
* <b>类</b>: DataBase<br>
* <b>版本</b>: 1.0.0<br>
* <b>作者</b>: wiThouTTears<br>
* <b>时间</b>: 2006-12-18<br>
* <b>QQ</b>: 314765755<br>
* <b>Email</b>: wiThouT--Tears@163.com<br>
* <b>Blog</b>: http://blog.youkuaiyun.com/withouttears/<br>
* <b>功能</b>: 用连接池连接MySql数据库及相关操作<br>
* */
public class Database ...{
    /** *//**
     * 数据库JNDI名称,默认:jdbc/testdb
     * */
    private String jndiName="jdbc/testdb";
    /** *//**
     * 建立连接池
     * @param null
     * @return DataSource
     * */
    private DataSource localhost()...{
        DataSource ds=null;
        //在HashMap中通过get()来获取value,通过put()来插入value,
        //ContainsKey()则用来检验对象是否已经存在
        HashMap<Object,Object> cachedDs=new HashMap<Object,Object> ();
        if(cachedDs.containsKey("ds"))//取出空闲状态的数据库连接
            ...{
                /**//* 在DataSource中事先建立了多个数据库连接,
                 * 这些数据库连接保存在连接池(Connect Pool)中。
                 * Java程序访问数据库时,只需要从连接池中取出空闲状态的数据库连接;
                 * 当程序访问数据库结束,再将数据库连接放回连接池。
                 * */
                ds = (DataSource)cachedDs.get("ds");
            }
        else
            try
            ...{
                    /**//*在javax.naming包中提供了Context接口,
                     * 该接口提供了将对象和名字绑定,以及通过名字检索对象的方法。
                     * */
                Context initCtx = new InitialContext();
                //lookup(String name):返回与指定的名字绑定的对象,获得数据库连接工厂
                ds = (DataSource)initCtx.lookup("java:comp/env/"+getjndiName());
                cachedDs.put("ds", ds);
            }
            catch(Exception e)
            ...{
                e.printStackTrace();
            }
                return ds;
        }
    /** *//**
     * 库的连接
     * @param null
     * @return Connection
     * */
    public Connection getConnection()...{
        Connection conn = null;
        try...{
            DataSource ds = localhost();
            conn = ds.getConnection();
            }
        catch(Exception e)...{
            e.printStackTrace();
            }
        return conn;
        }
    /** *//**
     * 关闭连接
     * @param conn
     * @return null
     * @since 1.2
     * */
    public static void close(Connection conn)...{
        try...{
            if(conn != null)
                conn.close();
            }
        catch(SQLException e)...{
            e.printStackTrace();
            }
        }
    /** *//**
     * 执行查询操作
     * @param sql
     * @return ResultSet
     * */
    public CachedRowSet executeQuery(String sql)
    ...{ 
        Connection conn=null;
        CachedRowSet rs=null;
        try...{
            rs=new CachedRowSet();
            conn=getConnection(); 
            Statement stmt=conn.createStatement();
            ResultSet rs1=stmt.executeQuery(sql);
            rs.populate(rs1);
            }
        catch(Exception e) ...{
            System.out.println(e.toString()); 
            }
        finally...{
            try...{
                conn.close(); 
                }
            catch(Exception ex)...{}
            }
        return rs;
        }
    /** *//**
     * 执行数据的插入、删除、修改操作
     * @param sql
     * @return boolean
     * */
    public boolean executeUpdate(String sql)...{
        boolean bl;
        bl = false;
        Connection conn = getConnection();
        try...{
            Statement stmt = conn.createStatement();
            if(stmt.executeUpdate(sql) > 0)
                stmt.close();
            bl = true;
            }
        catch(SQLException e)...{}
        finally...{
            close(conn);
            }
        return bl;
        }
    /** *//**
     * 获得数据库JNDI名称
     * @param null
     * @return String
     * */
    public String getjndiName()...{
        return this.jndiName;
    }
    /** *//**
     * 设置数据库JNDI名称
     * @param jndiName
     * @return true|false
     * */
    public boolean setjndiName(String jndiName)...{
        this.jndiName = jndiName;
        return true;
        }
}


第三步: 编写test.jsp测试

<%@page import="withouttears.bean.Database"%>
<%@page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<%
Database db=new Database();
db.setjndiName("jdbc/testdb");//初始化JNDI名称

ResultSet rs=db.executeQuery("select * from test_table");
while(rs.next())...{
        out.println("id:"+rs.getInt("id")+"<br>");
}
rs.close();
%>
</body>
</html>

 

 

总结:

其实使用数据库连接池的方法与传统的JDBC的方法大同小异,只不过多了多了几个应用服务器的配置和web.xml文件的配置。

传统的JDBC连接数据库的方法为:

1.先将数据库驱动包.jar文件放入项目lib文件夹

2.在代码中,使用Class.forName(驱动名)的方式加载数据库驱动

3.使用DriverManager.getConnection(url)的方式获得Connection对象。

 

使用数据库连接池的方法为

1.配置Tomcat的server.xml和content.xml文件,并配置项目WEB-INF目录下的web.xml。

  在Tomcat 5.5/conf/server.xml的<GlobalNamingResources>中添加:
<Resource name="JDBC for MySQL" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" password=""

maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost/test" maxActive="4"/>。

 

在C:\Program Files\Tomcat 5.5.7\conf\content.xml文件中添加如下数据库链接池配置,如果没有就新建一个content.xml,注意tomcat版本要5.5以上,5.5以下不支持content.xml。

<Context>
<Resource name="jdbc/testdb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mytestdb"
username="root"
password="******"
maxActive="100"
maxIdle="30"
maxWait="10000"
></Resource>
</Context>


在Tomcat 5.5/webapps/test/WEB-INF/web.xml(就是需要使用连接池的web项目的web.xml文件)的<web-app>中添加:
<resource-ref>
<description>MySQL Connection Pool</description>
<res-ref-name>JDBC for MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

在Tomcat 5.5/webapps/test/META-INF/context.xml的<Context>中添加:
<ResourceLink name="JDBC for MySQL" global="JDBC for MySQL" type="javax.sql.DataSourcer"/>
项目中没有context.xml文件的话,也可以不要改这一步

2.将驱动包导入tomcat的conf\lib文件夹
3.在代码中 通过    Context context=new InitialContext();获取一个对象context
   通过 (DataSource)context.lookup("java:comp/env/XXXX(在tomcat的content.xml文件中配置的Resource name)"); 获取数据源ds
   通过 ds.getConnection(); 获取Connection对象。

 

关于Context DataSource 的详细信息课参考JAVA API文档。

ZedBoard+Vivado(二)——PS + PL实现流水灯 硬件:Zedboard 软件:Vivado2018.2 + Win10 本文参考了http://blog.chinaaet.com/cuter521/p/35978的设计 1 设计 功能:PS + PL流水灯 语言:C 流程:创建工程-&amp;gt;IP Integrator-&amp;gt;综合、实现、生成Bitstream-&amp;gt;SDK 2 流程 2.1 创建工程 跟上一篇步骤完全相同,这里不用添加源文... 阅读详情

相关推荐

【抓包工具】Windows 10/11:Charles 从零到精通(下载、安装、配置与HTTPS证书实战)

本文提供了一份详尽的Charles抓包工具在Windows 10/11系统上的从零到精通指南。内容涵盖下载安装、初始配置、解决端口冲突,并重点解析了HTTPS抓包的核心步骤——安装CA证书。此外,还介绍了手机抓包配置及映射、断点等高效使用技巧,帮助开发者和测试人员快速掌握网络调试与安全分析技能。

weixin_29251131的博客 551

tomcat连接池的配置与使用数据库mysql

tomcat连接池的配置与使用数据库mysql                                        关于tomcat连接池的配置,我在自己开始的时候碰到过许多的问题,至少失败过六次,今天终于成功了。对于这个问题的产生与由来我也给大伙说说。 在《程序员csdn开发高手》这本杂志的2004年第02期,一位名叫宋廷宇的老师写了一篇文章,名赤《tomcat连接池的

fuyangchang的专栏 1688

Android13配置selinux让system应用可读sys,proc,SN号

Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错.其修改方法会比Android11复杂一些.。

zmlovelx(帅得不敢出门 程序员群31843264) 2654

tomcat5/tomcat4中配置数据库(oracle)连接池

(我的收藏都会有注释,如果原作者不喜欢,可以来信!)首先,在Oracle中建立一个名为BOOK的Table,SQL如下: create table BOOK(BOOK_CODE CHAR(5) NOT NULL, COST NUMBER(7,2)); 插入几条记录: insert into BOOK VALUES(B0020,13.50); insert into BOOK VALUES(B022

独舞九天的技术专栏 1243

【实战技巧】matplotlib中文标签显示问题的3种高效解决方案

本文详细介绍了解决matplotlib中文标签显示问题的3种高效方法,包括修改字体设置、临时指定字体和修改后端配置。针对不同操作系统和环境提供了实用技巧,帮助开发者快速解决中文显示为方框的常见问题,提升数据可视化效果。

weixin_30855099的博客 171

Centos7网络配置(设置固定ip)

刚安装完系统,有的人尤其没有勾选自动网络配置的情况下,是访问不了外网的,本机也连不通虚拟机。或者现在有的是动态ip,几次之后启动ip地址就变了,会导致其他软件或程序之前连接配置要重新更改,很麻烦,下面讲解一下如何配置网络,如何设置成固定ip。

个人笔记git:https://gitee.com/tlangp/note.git 8054

Tomcat5下的数据库配置

1、在Context.xml中配置WEB-INF/web.xml--> 这一行要注释掉,不然访问Web.xml去了。在web.xml配置也可以,但节点的名称和tomcat池的不一样  在server.xml不写配置了,虽然同样可在这里配置,但有时会出问题   public class DBUtils{    private static Context

macaw的专栏 650

保姆级教程:用再生龙Clonezilla Live给Ubuntu系统做全盘备份与恢复(含BIOS设置避坑)

本文提供了一份详细的Clonezilla Live教程,指导Ubuntu用户如何轻松完成全盘备份与恢复。从启动盘制作、BIOS设置避坑到备份参数解析和恢复操作,涵盖了所有关键步骤和常见问题解决方案,帮助用户高效保护系统数据。

weixin_42116058的博客 642

Tomcat5数据库连结池配置使用

 配置tomcat安装目录下conf/server.xml配置如下                             factory        org.apache.catalina.users.MemoryUserDatabaseFactory                    pathname        conf

huang_junfeng的专栏 1647

【PADS-开发指南】

馒头破戒大师

sinat_23896491的博客 3225

ThreeJS教程:地图案例(包围盒、正投影)

推荐:将加入你的3D工具链。

jianshi2023的博客 1008

Tomcat 5.5 配置 MySQL 数据库连接池

  用了最新的几个咚咚,搞了整整一天终于搞清楚了Tomcat 5.5 配置 MySQL 数据库连接池,网上的经验并不能完全用到新环境里面,我写出整个过程以方便大家配置。1 环境描述  JDK 1.5  Tomcat 5.5.4  MySQL 4.0.20  MySQL JDBC 3.0.15  Commons dbcp 1.2.12 准备工作  JDK, Tomcat, MySQL安装过程

网络隐士的专栏 8018

MATLAB2022a安装避坑指南:从下载到破解的完整流程(附常见错误解决方案)

本文提供MATLAB2022a在Windows系统下的完整安装教程与深度配置指南。内容涵盖从系统兼容性检查、安装媒介验证到分步安装、自定义产品选择及安装后优化设置的全流程。重点解析了安装过程中常见的权限、空间、许可证错误,并提供了系统性的故障诊断与解决方案,旨在帮助用户构建稳定高效的科研计算环境。

weixin_29057695的博客 441

Tomcat5配置Mysql JDBC数据库连接池

Tomcat5配置Mysql JDBC数据库连接池

ben_nb的专栏 127

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

(转)Tomcat5.0-5.5连接池配置指南

本文以目前最流行的MySQL为例,讲解通过Tomcat连接池连接MySQL数据库的基本步骤,如果你了解MySQL可跳过第一步。  在进行Tomcat连接池配置前,先解压缩mysql-connector-java-xxx.zip,将其中的mysql-connector-java-3.x.x-xxx.jar取出,置于/common/lib中。  接下来,让我们一起进入精彩的Tomcat配置之旅。一.新

THE GAME 1551

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Tomcat 5.5+MySQL 数据库连接池

1 环境描述  JDK 1.5  Tomcat 5.5.4  MySQL 4.0.20  MySQL JDBC 3.0.15  Commons dbcp 1.2.12 准备工作  JDK, Tomcat, MySQL安装过程并非我的重点,略过。  从http://dev.mysql.com/downloads/下载mysql-connector-java-3.0.15-ga.zip,将其中的mys

pq5326的专栏 1430

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java jndi 开发_Java开发(2) - Tomcat配置JNDI数据源

本例使用的数据库为Mysql 5.0,对于其它数据库只是修改一下相应的参数即可,服务器是Tomcat5.5, 与之间的版本配置连接池最简便第一步:将驱动程序(jar包)放到tomcat安装目录下的common\lib文件夹下第二步:在Tomcat的webapps目录随便创建一个工程目录,例如myjdbc。在myjdbc目录下创建META-INF目录,在此目录下创建一个context.xml文件,里...

weixin_31746993的博客 190

手机铃声格式规范,midi格式规范(转)

前一段時間在csdn上问了许多问题,无人解答,高手都不愿意教我,真是郁闷。现在终于有所收获,现将我个人收藏发布如下,希望各位高手能象我一样 :)最近在做一个erricsson,nokia铃声的编辑程序,程序中主要麻烦的是发送和试...

cuankuangzhong6373的博客 540

基于mysql学生成绩管理论文_StuSystem: 学生成绩管理系统毕业/课程设计源代码加论文 Spring+SpringMVC+Mybatis+Mysql...

项目简介项目来源于:https://gitee.com/z77z/StuSystem本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统。主要实现的功能有教师管理、学生管理、课程管理、学生成绩管理。难度等级:中等技术栈编辑器Eclipse Version: 2020-03 (4.15.0)前端技术基础:html+css+JavaScript框架:JQuery+H-ui后端技术Spring+...

weixin_31653645的博客 223

多彩吉安红色旅游网站

Java语言学习培训比较简单,自然,它是对于C前辈们的 而言的,C 语言非常强劲。Java取消了许多特点,如go这种描述,也取消了主文件,让所有文件夹全是类,类是二维数组以及各种对象,也使Java处理一些对象的引入和回收利用,让开发者只需建立对象,应用对象,编写代码逻辑,不需要留意性能,让各种各样文件存储给Java自己解决,你能花很多时间科学研究应用软件相互关系,使研发更为集中化,如同跑车驾驶员一样,只要了解各种汽车的性能,实际操作,不需要科学研究如何生产车轮子,使软件开发更为详尽。

yh1340327157的博客 1171

mysql租车管理系统_Maven+JSP+SSM+Mysql实现的汽车租赁管理系统

项目简介本系统基于Maven+JSP+SSM+Mysql实现的汽车租赁管理系统。简单实现了基础管理、系统管理,业务管理和统计分析。难度等级:中等技术栈编辑器IntelliJ IDEA 2019.1.1 (Ultimate Edition)前端技术基础:html+css+JavaScript后端技术Spring+SpringMVC+Mybatis模板引擎:JSP数据库连接池:Druid数据库:mys...

weixin_33904522的博客 450

Java学习路线

Java学习路线一、Java基础基础语法面向对象集合IO多线程与并发异常网络编程二、JavaWeb基础反射注解数据库测试静态网页动态网页三、Java进阶编程性能网络四、JavaWeb进阶服务器容器构建协作框架五、分布式1. 框架2. 数据库3. 消息队列 一、Java基础 基础语法 面向对象 集合 IO 多线程与并发 异常 网络编程 二、JavaWeb基础 反射 注解 数据库 MySQL JDBC 连接池 测试 静态网页 HTML5 CSS JavaScript JQuery Vue

DSSZLLZH的博客 125

Tomcat5配置Mysql JDBC数据库连接池(修改版本)

  如果只是对MySql感兴趣可以照抄这篇短文,如果想配置其他数据库类型的连接池,也可以做简单修改参数即可使用。 1、  安装Tomcat参考Tomcat for window 的安装向导,基本直接安装即可,注意:安装时会提示输入管理用户名和密码,这是以后会用到的用户名和密码,切记。2、  安装MySql默认安装即可。3、  使用Tomcat的Web

tangkuai的专栏 1354

tomcat8.0连mysql数据库_Tomcat8.5&Mysql8.0配置数据库连接池(DBCP)

DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。 --百度百科开发环境eclipse_photon + Tomca...

weixin_33173126的博客 1575

tomcat 连接池 mysql_tomcat 配置mysql 数据库连接池

tomcat 配置mysql 数据库连接池tomcat 安装目录下的conf目录中的context.xml与web.xml文件分别修改如下:context.xml 新加如下内容:auth="Container"type="javax.sql.DataSource"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://数据库地址:3306/...

weixin_42353187的博客 236
上一篇: JAVA中常用IO流类: DataInputStream和DataOutputStream
下一篇: 如何在MyEclipse中添加 用户自定义类库
caixiexin
博客等级 码龄17年 122粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值