Tomcat和数据库引用

时间:2017-03-05 08:45:45

标签: java mysql tomcat jdbc

是否有正确的方法在tomcat数据库中设置ip,用户和密码来打开与DB的连接?

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

1 个答案:

答案 0 :(得分:0)

是的,JNDI是解决方案。当被问到这个问题时,我已经读过关于jndi的内容,但我有错误,所以我认为解决方案不是那样的。经过大量的搜索后发现错误的是,当我为资源指定'url'时,它需要在'mysql:'之后的两个BACKSLASHES,而不是一个,正如很多在线教程所说的那样。我报告正确的程序来解决我要求的问题:
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>

2)您可以按照以下方式获得数据库连接

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();