一、数据源的作用及操作原理

1,  首先先看下传统JDBC的操作

在tomcat中使用数据库连接池操作数据库

2,JNDI属于命名及目录查找接口,在javaee的javax.naming包中

这套API的主要作用在于:它可以把Java对象放在一个容器中(JNDI容器),并为容器中的java对象取一个名称,以后程序想获得Java对象,只需通过名称检索即可。其核心APIContext,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象。

Tomcat服务器创建的数据源会自动绑定到JNDI资源中,应用程序想要使用数据源时,直接通过JNDI的lookup方法检索数据源名称即可得到。

3,配置tomcat数据源

在项目META-INF/server.xml中配置服务器数据源

这样,服务器在启动时,会自动帮我们创建一个数据库连接池

如果想在项目中使用数据源,还需要配置项目的WEB-INFO/web.xml文件

java:comp/env/   前面是固定的   
java:comp/env是标准的J2EE环境查找规则   
comp是company的缩写
env是environment的缩写
使用这种方式必须做一次环境名到JNDI名的映射 (<res-ref-name>)
这种隔离使得在写程序时不必关注真正的JNDI名字 
其实说白了跟把JNDI名放到配置文件里是一样的

查找数据源

查找到数据源并从连接池中取得连接

conn.close()表示将当前连接放回连接池中,等待重复使用或空间超时后被释放

结果

拓展

服务器会为我们的应用程序创建很多资源,比如request对象,response对象,服务器创建的这些资源有两种方式提供给我们的应用程序使用:第一 种是通过方法参数的形式传递进来,比如我们在Servlet中写的doPost和doGet方法中使用到的request对象和response对象就是 服务器以参数的形式传递给我们的。第二种就是JNDI的方式,服务器把创建好的资源绑定到JNDI容器中去,应用程序想要使用资源时,就直接从JNDI容器中获取相应的资源即可。

转载于:https://www.cnblogs.com/chenxd/p/7816049.html

07.十分钟学会tomcat数据源相关推荐

  1. 一些生活中简单可用的技能--十分钟学会,终生受益

    一些日常生活中简单可用的技能 十分钟学会,终生受益 工作 学习 生活 社交 十分钟学会,终生受益 下面的文章是从知乎高赞回答中"日常生活中有哪些十分钟就能学会并可以终生受用的技能?" ...

  2. 虚拟局域网软件开源_玩转虚拟机,十分钟学会一台电脑安装3个操作系统

    玩转虚拟机,十分钟学会一台电脑安装3个操作系统 本文目录 一.什么是虚拟机 1.普通虚拟机 2.Java虚拟机 二.虚拟机的作用 三.虚拟机的安装需求 四.常用的虚拟机软件 1.VMware虚拟机 2 ...

  3. 十分钟学会win10系统封装之系列教程(一):在VMware Workstation虚拟机上安装win10母盘系统

    关于系统封装这个话题,历来就一直受到很多小伙伴的青睐,很多同学都认为会封装系统是一件很高大上的事情,所以一直都有很多小伙伴向亦是美网络小编询问到底什么时候能出一些关于win10系统封装的教程,其实小编 ...

  4. java中xml的组装与解析(十分钟学会)

    xml的组装与解析(十分钟学会) 一.xml的解析 话不多说直接上代码 1.引入pom依赖 // 解析xml <dependency><groupId>org.jsoup< ...

  5. Python + wordcloud + jieba 十分钟学会生成中文词云

    前述 本文需要的两个Python类库 jieba:中文分词分词工具 wordcloud:Python下的词云生成工具 写作本篇文章用时一个小时半,阅读需要十分钟,读完该文章后你将学会如何将任意中文文本 ...

  6. Python + wordcloud + jieba 十分钟学会用任意中文文本生成词云

    前述 本文需要的两个Python类库  jieba:中文分词分词工具  wordcloud:Python下的词云生成工具 写作本篇文章用时一个小时半,阅读需要十分钟,读完该文章后你将学会如何将任意中文 ...

  7. 十分钟学会用Go编写Web中间件

    中间件(通常)是一小段代码,它们接收一个请求,对其进行处理,每个中间件只处理一件事情,完成后将其传递给另一个中间件或最终处理程序,这样就做到了程序的解耦.如果没有中间件那么我们必须在最终的处理程序中来 ...

  8. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  9. python 嵌套数组_兴趣是最好的老师,快速入门:十分钟学会python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

最新文章

  1. HarmonyOS UI开发 match_parent与match_content
  2. 生物界地震,AlphaFold破解50年重大挑战,AI+X将迎来新时代
  3. Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布...
  4. self-attention竟然没用?
  5. json和对象、list互转
  6. 算法练习5---快速排序Java版
  7. 工业交换机和工业级光纤收发器的区别
  8. 查看Oracle有哪些表或者视图
  9. 四:Jquery-animate
  10. el表达式的转义字符。
  11. html文件中用import,@import引入CSS文件
  12. 同济大学计算机学硕无人录取,2019年双非上岸同济大学计算机考研初复试经验分享,超详细!...
  13. 大数据开源舆情分析系统-数据采集技术架构浅析
  14. 大师云集!CCAI 2017 中国人工智能大会 8 折强势优惠中
  15. 软件系统开发费用的估算——功能点方法 应用实例
  16. 【简陋Web应用3】实现人脸比对
  17. 一个人竟然撸了一个网易云音乐云村
  18. 如何得到满意的好答案
  19. mysql创建新闻发布时间_基于PHP+mysql实现新闻发布系统的开发
  20. vtk医学图形提取骨骼模型的算法思路

热门文章

  1. AI 质检学习报告——学习篇——AI质检产生背景和发展过程
  2. 《信息学奥赛一本通》回文数(Noip 1999)
  3. 【机器视觉】 endtry算子
  4. 【Linux】一步一步学Linux——arpd命令(184)
  5. 抛出错误_如何找到抛出ORA00933错误的SQL
  6. idea 自动添加doc_interllij idea生成javadoc
  7. 最新最全的java多线程基础总结(上)
  8. POJ 1852 Ants O(n)
  9. Linux命令(10)——vim编辑器
  10. 关于Linux和Windows的换行符