博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat数据源总结
阅读量:6855 次
发布时间:2019-06-26

本文共 1823 字,大约阅读时间需要 6 分钟。

一、数据源的由来

 

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] 
 
  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

你可能感兴趣的文章
java web实现在cookie中保存用户名和密码,用户自动登入
查看>>
从BadBoy导入脚本并调试
查看>>
2017.10.27 Cypress BLE
查看>>
.net 信息采集ajax数据
查看>>
公司 邮件 翻译 培训 长难句 19
查看>>
深入理解盒模型
查看>>
深入理解javascript描述元素内容的5个属性
查看>>
poj2128
查看>>
poj2369
查看>>
JavaScript数据类型检测
查看>>
JS-给对象动态添加属性
查看>>
Struts2 中 result type=”json” 的参数解释
查看>>
25.内置API
查看>>
3.Web项目中使用Log4j实例
查看>>
Codeforces 787 A The Monster 扩欧
查看>>
Python正则表达式之 - ?: / ?= / ?!
查看>>
Java接口中的成员变量的意义
查看>>
用nodejs访问ActiveX对象,以操作Access数据库为例。
查看>>
Silverlight 调用远程地址出错
查看>>
pip更新
查看>>