在JAVA
托管的Tomcat
网络项目中,后端为ORACLE/MYSQL
我们可以在下面添加<Resource>
(考虑连接Oracle
服务器)< / p>
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/myProject">
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
maxActive="20" maxIdle="10"
maxWait="-1" name="jdbc/TestDB" password="dbPAss" type="oracle.jdbc.pool.OracleDataSource"
url="jdbc:oracle:thin:@DBHOST:PORT:SERVICENAME"
user="dbUser"/>
<Loader delegate="true"/>
</Context>
在项目的context.xml
中,如果连接MySQL
,只会更改一些内容
和
可以使用
JAVA SERVLET
中使用
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
然后创建其Connection
对象
将MongoDB
用作正确的语法应该是什么?
我打算为MongoDB服务器存储HOST,PORT,USERNAME和PASSWORD。
答案 0 :(得分:1)
Tomcat仅在使用<Resource>
元素时支持JDBC DataSource(嗯,它支持其他内容,如SMTP会话等,但对于数据库,它们必须基于JDBC)。 MongoDB目前没有JDBC驱动程序(因为它不是关系数据库,并且JDBC API对它没有意义)(除非你想尝试这个东西:https://github.com/erh/mongo-jdbc),所以你必须管理你的拥有自己的资源池。
答案 1 :(得分:1)
实际上有一个MongoDB的JDBC驱动程序。一个刚刚被一家名为UnityJDBC的公司发布。你可以免费下载程序和驱动程序......
答案 2 :(得分:1)
Tomcat(或更具体地说,JNDI)确实支持任意资源(<Resource>
中的config.xml
元素),包括MongoDB的连接信息,而不需要MongoDB(或任何其他非RDBMS)争吵使用JDBC。所需要的只是javax.naming
API的实现,以定义自定义资源的属性(请参阅Tomcat JNDI HOW-TO参考中的Adding Custom Resource Factories)。
我最近发现this GitHub project旨在将MongoDB数据源连接信息存储为JNDI资源,同时使用官方MongoDB Java客户端。
如果您正在使用Spring,this other answer在使用Spring时通过JNDI资源提供有关MongoDB数据源配置的信息(该代码也可用作创建自己的自定义JNDI资源加载器的指南) MongoDB或您存储在Tomcat context.xml
中的任何其他配置属性。)