Tomcat数据源的原理,配置及使用(JNDI)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Tomcat数据源的原理,配置及使用知识点:1.数据源的作用及操作原理;2.Tomcat中数据源的配置;3.数据源的查找及使用  传统JDBC使用过程存在以下四个步骤:1.加载驱动程序2.

Tomcat数据源的原理,配置及使用

知识点:

1.数据源的作用及操作原理;

2.Tomcat中数据源的配置;

3.数据源的查找及使用

 

 

传统JDBC使用过程存在以下四个步骤:

1.加载驱动程序

2.进行数据库连接

3.数据库操作

4.数据库关闭

对于不同的用户只有操作不同,但是1,2,3三个步骤是一个重复的操作

如果开始种直接使用JDBC操作的化,那么会产生一种性能的问题

那么假设数据库不关闭,一户如果有新的用户使用的时候直接取一个已经有的连接就可以了

这就是数据库连接池,数据库连接池里存放的是数据库的连接

1.JNDI的配置

01配置方法1:

 

web容器中,数据库的连接池都是通过数据源(javax.sql.DataSource)访问的,:可以通过javax.sql.DataSource类取得一个Connection对象,但是如果要向得到一个DataSource对象需要使用JNDI进行查找,如下图所示:

 

 

 

JNDI属于命名及目录查找借口,主要功能是进行查找的,查找对象.

数据库的连接池需要在Tomcat上完成配置的,要修改Tomcat的conf目录下的Context.xml文件才可以起作用

 

<Context>

 

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

</Context>

此配置有几个参数:

  01.name:表示数据源的名称,也是要查找的名称

02.auth:表示容器负责资源的连接

03.type:表示对象,数据源上每一个绑定的都是DataSource

04.Maxactive:最大连接数

05.maxIdle:处于空闲时间的最大连接数

对于连接的授权有两种:Container,Application(应用程序必须程序化的登录到资源管理器,基本不用)

 

Tomcat6.0以后版本,如果要让一个数据源起作用,还必须在项目下的web.xml里进行如下配置:

 

<web-app>

<resource-ref>
<description>myschool DataSource</description>  myschool是数据库名字
<res-ref-name>jdbc/myschool</res-ref-name>     jdbc/myschool和Context.xml中的name值一致
<res-type>javax.sql.DataSource</res-type>      javax.sql.DataSource和Context.xml中的type值一致
<res-auth>Container</res-auth>          Container和Context.xml中的auth值一致
</resource-ref>

</web-app>

2.配置方法2

将Tomcat的conf目录下的Context.xml复制到具体的项目下的META-INF文件夹中,然后添加

<Context>

 

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

</Context>

就OK了

JNDI的使用

步骤:

  01.初始化上下文Context ctx=new InitialContext();

02.获取数据源DataSource ds=(DataSource )ctx.lookup(“java:comp/evn/jdbc/mldn”)

03.获取连接Connection conn=ds.getConnection();

04.关闭连接(使连接恢复空闲状态):conn.close

常见异常:

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
设计模式 网络协议 Java
Tomcat 高并发之道原理拆解与性能调优
Tomcat 高并发之道原理拆解与性能调优
31 0
|
3月前
|
设计模式 Java 应用服务中间件
Tomcat 架构原理解析到设计借鉴
Tomcat 架构原理解析到设计借鉴
139 0
|
3月前
|
设计模式 Java 应用服务中间件
Tomcat 架构原理解析到架构设计借鉴
Tomcat 架构原理解析到架构设计借鉴
106 0
|
1月前
|
XML 应用服务中间件 Apache
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
|
4月前
|
Java 应用服务中间件 Maven
Maven - 两种Tomcat插件的配置
Maven - 两种Tomcat插件的配置
124 0
|
19天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
23 0
|
8天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
4月前
|
Java 应用服务中间件 容器
SpringBoot配置外部Tomcat并打war包
SpringBoot配置外部Tomcat并打war包
67 0
|
4月前
|
Java 应用服务中间件
SpringBoot 项目war包部署 配置外置tomcat方法
SpringBoot 项目war包部署 配置外置tomcat方法
70 0
|
16天前
|
Java 应用服务中间件
Springboot启动的时候初始化的线程池默认配置tomcat
Springboot启动的时候初始化的线程池默认配置tomcat
12 1