一、数据源的由来

JDBC操作主要由以下几步组成:

(1)Class.forName();

(2)Connection con  = DriverManager.getConnection();

(3)PreparedStatement stat = con.prepareStatement(sql);

(4)stat.executeQuery();

(5)con.close();

很显然,(1)(2)(5)步是每次JDBC操作都要执行的,重复执行是非常耗时的,因此为了解决重复操作的问题,引入了数据源。

二、数据源介绍

存在一个数据库连接池,在池中存在多个数据库连接,用户对数据库操作时取出一个,用完放回连接池中。

考虑因素:

(1)最小连接数:连接池中最小的连接个数;

(2)最大连接数:连接池中最大连接个数;

(3)最大等待时间:不能连接时最长等待时间;

Tomcat对数据库连接池支持;

三、JNDI(Java Naming Directory Interface)

1.通过DataSource的名字查找对应的DataSource;

2.通过一个DataSource在连接池中获得一个Connection;

四、配置步骤

A 全局数据源的配置

全局数据源意思是配置了一个数据源后任何web应用都能够访问。

(1)将数据库的驱动程序复制到tomcat\lib中;

(2)在server.xml中加入:

<Context path="/Test" docBase="E:\JAVA WEB" reloadable="true">    <!-- 数据源需要在Context中配置-->
   <Resource name="jdbc/xiazdong"                                    <!-- 数据源名称-->
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"                                        <!-- 最大连接数-->
    maxIdle="30"                                            <!-- 最小连接数-->
    maxWait="10000"                                    <!-- 最大等待时间-->
    username="root"
    password="123456"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/xiazdong"/>
  </Context>

(3)在web.xml中加入:

<resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/xiazdong</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

B 局部数据源配置

(1)将驱动器复制到tomcat/lib中;

(2)在conf/catalina/localhost/test.xml中添加:

[html] view plaincopy
  1. <Resource name="jdbc/test" auth="Container"
  2. type="javax.sql.DataSource"
  3. driverClassName="com.mysql.jdbc.Driver"
  4. url="jdbc:mysql://localhost:3306/javaee"
  5. username="root" password="12345" maxActive="5"
  6. maxIdle="2" maxWait="10000"/>

作为<Context>的子元素;

五、主要操作步骤

import javax.naming.*;
import javax.sql.*;
import java.sql*;

Context ctx = new InitialContext();

DataSource ds = ctx.lookup("java:comp/env/jdbc/xiazdong");

Connection con  = ds.getConnection();

可以很清楚的看出,从以上代码完全看不出操作的是哪个数据库,配置都在配置文件中;

转载于:https://www.cnblogs.com/Coda/p/4231625.html

Tomcat数据源总结相关推荐

  1. 07.十分钟学会tomcat数据源

    一.数据源的作用及操作原理 1,  首先先看下传统JDBC的操作 在tomcat中使用数据库连接池操作数据库 2,JNDI属于命名及目录查找接口,在javaee的javax.naming包中 这套AP ...

  2. Java中的Tomcat数据源JNDI示例

    Welcome to Tomcat DataSource JNDI Example Tutorial. We looked at the JDBC DataSource in the last tut ...

  3. mysql wait_timeout 8小时问题解决,tomcat数据源的配置

    异常报错: 2017-02-13 09:30:17.597 [startQuertz_Worker-6] ERROR com.autoyol.task.TransStatManageTask#exec ...

  4. Java使用Tomcat数据源的方式

    1.  在tomcat中配置数据源,配置路径是:E:\UCMSServer\tomcat\conf\server.xml,在如下位置添加: 数据源配置: <Resource name=" ...

  5. java tomcat 数据源配置_Java编程:配置tomcat5数据源心得

    在Admin控制台下host里面新建一个context,然后在下面配置datasource,由于是在页面环境下配置,所以一切都显得很简单. 然后就是在jsp里面测试看datasource配置是否成功. ...

  6. [tomcat] 配置数据源介绍

    从tomcat5.5开始,内置了DBCP数据源的实现.tomcat数据源提供两种配置方式,两种数据源的访问范围不同, 1.全局数据源:顾名思义在tomcat应用下的所有web都可以访问. 2.局部数据 ...

  7. jndi weblogic mysql_Tomcat配置JNDI数据源连接池

    [Tomcat数据源连接池加密] Tomcat 5.0.28 Jndi配置: 1)部署你的应用到Tomcat,并且确保能正常访问. 2)进放admin控制台,如果你无法进入控制台,请参考常用的一些Ja ...

  8. 配置tomcat8数据源(采用局部数据源方式)

    tomcat提供两种数据源配置方式,全局和局部.全局的话对于所有web应用都生效,局部只对于配置的某一个web生效. 步骤: 1.将mysql的jdbc驱动复制到tomcat的lib路径下. 2.在t ...

  9. 深入理解Spring Boot数据源与连接池原理

    ​ Create by yster@foxmail.com 2018-8-2 一:开始 在使用Spring Boot数据源之前,我们一般会导入相关依赖.其中数据源核心依赖就是spring‐boot‐s ...

最新文章

  1. 自定义listView添加滑动删除功能
  2. Proteus与Keil联调
  3. 结合html和css制作页面的布局结构,CSS Div网页布局中的结构与表现
  4. 几个标准的说明,关于EMC的
  5. python从random生成列表_详解Python利用random生成一个列表内的随机数
  6. 阿里云的工程师要被祭天了?
  7. 利用锁机制解决商品表和库存表并发问题
  8. (C++)虚函数表解析(转)
  9. Android不透明度16进制值
  10. 计算机注册表管理,注册表命令,教您电脑怎么打开注册表编辑器
  11. gtx1050ti最稳定的驱动_GTX1050ti显卡驱动
  12. 软件编程推荐书籍 大全
  13. python怎么循环合并数组_python数组循环合并python执行系统命令四种方法比较
  14. win7显示隐藏文件夹的方法
  15. java游戏和flash游戏区别,小游戏的基本种类
  16. Linux下安装jq
  17. 关于分销体系是怎么理解的?
  18. openwrt web升级功能介绍
  19. npm安装包报错,清除一下缓存
  20. [LnOI2019]长脖子鹿省选模拟赛 东京夏日相会

热门文章

  1. 教你从0到1搭建秒杀系统-抢购接口隐藏与单用户限制频率
  2. 权限管理系统中 管理员能看到所有用户的密码么_计算机毕设项目002之学生成绩管理系统...
  3. ksql 数量大于2_别人1加1大于2大于3,雍禾植发1加1小于2……
  4. gpu的单位表示_GPU编程1--GPU中的基本概念
  5. 阿里云 OAM 入选「2020中国技术力量年度榜单」,定义云原生应用交付标准
  6. redis取出list最边的一个_这几个Redis使用技巧,让你的程序快如闪电
  7. 树控件单击获取到的节点信息不是当前选中的节点_常用基本控件测试用例(一)...
  8. 实验一基于 的词法分析实验_[源码和文档分享]基于JAVA实现的基于DFA的词法分析程序...
  9. 全局样式_CAD新手福利:不懂标注样式修改的请进来一看
  10. excel两个表格数据对比_Excel表格怎么防止看错数据?阅读模式了解一下