Java Tomcat和数据库引用

Java Tomcat和数据库引用,java,mysql,tomcat,jdbc,Java,Mysql,Tomcat,Jdbc,在tomcat数据库中设置ip、用户和密码以打开到DB的连接是否有正确的方法 我的情况是:我在tomcat上运行了一些servlet,几乎所有这些servlet都打开到mySQL DB的连接并执行查询。数据库ip、连接的用户名和密码总是相同的,所以我想要的是一个单点来存储这些信息,让我可以轻松地更改这些信息,例如编辑一个简单的txt文件或xml文件。是的,JNDI是解决方案。当被问到这个问题时,我已经读过关于jndi的文章,但是我有错误,所以我认为解决方案不是这样。经过大量搜索后,发现错误在于,

在tomcat数据库中设置ip、用户和密码以打开到DB的连接是否有正确的方法


我的情况是:我在tomcat上运行了一些servlet,几乎所有这些servlet都打开到mySQL DB的连接并执行查询。数据库ip、连接的用户名和密码总是相同的,所以我想要的是一个单点来存储这些信息,让我可以轻松地更改这些信息,例如编辑一个简单的txt文件或xml文件。

是的,JNDI是解决方案。当被问到这个问题时,我已经读过关于jndi的文章,但是我有错误,所以我认为解决方案不是这样。经过大量搜索后,发现错误在于,当我为资源指定“url”时,它需要在“mysql:”之后加两个反斜杠,而不是像许多在线教程所说的那样加一个反斜杠。我报告了解决我要求的问题的正确程序:
1)context.xml必须像

<Context>
<Resource name="jdbc/DB_NAME"
auth="Container"
type="javax.sql.DataSource"
username="db_user_to_interact_with_db"
password="password_of_username"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://db_IP:3306/DB_NAME?useSSL=true"
maxActive="100"
maxIdle="3"/>
</Context>

您可以将其绑定到JNDI。@z10h22编写连接到数据库的代码。是的,您可以在context.xml中配置连接到数据库的内容,例如,这是JNDI。
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
DataSource ds = (DataSource)envCtx.lookup("jdbc/DB_NAME");
// Allocate and use a connection from the pool
Connection conn = ds.getConnection();