美文网首页tomcat学习
tomcat--web项目连接到数据库

tomcat--web项目连接到数据库

作者: aix91 | 来源:发表于2018-12-17 11:43 被阅读0次

1. JNDI


JNDI是一套用于java 目录服务的API。Java应用可以通过JNDI按照命名来查找数据和对象。使用JNDI可以将app应用连接到外部服务,比如数据库..

2. Context


Tomcat 在StandardContext 维护了一个NamingResourcesImpl, 这个类在web应用初始化阶段保存了当前应用定义的资源。资源可以在server.xml中的<Context>元素下定义(但是不推荐);或者在自己的web应用的META-INF/context.xml中定义(推荐,因为这样每次更改context信息,就不用重新启动tomcat)。

当web应用启动时,Tomcat会为每个应用创建子Context。除了UserTransaction 位于 “java:comp"下, 其他的信息都位于 “java:comp.env" 下。在JNDI查找资源时,会找到当前应用对应的Context,然后根据命名找到我们想要的信息。

下图是web项目的目录:

web目录结构

3.配置DataSource数据源


首先在META-INF/context.xml 中配置数据源信息(也可以在tomcat conf/context.xml 下配置,这样同一tomcat下的其他web应用也可以使用此数据源)。

数据源配置

至此,我们就可以通过context找到相应的数据源信息。网上很多教程会在web.xml中添加“resource-ref”的配置,但是从概念上讲,web.xml中定义的是资源的引用,而context.xml定义的是配置的资源。既然已经能直接从context中找到相应的数据源信息,那么web.xml 中的引用岂不是重复的。

4. 实现数据库连接


在我们进行JNDI资源查找时,首先需要手动构造一个IntialContext。然后通过得到的context去上面说的"java:comp/env"下去查找。如下图:(注意:查找的name要与Resource中定义的name一致)

连接到数据库

相关文章

网友评论

    本文标题:tomcat--web项目连接到数据库

    本文链接:https://www.haomeiwen.com/subject/alpxkqtx.html