-1
是否有正確的方法來設置tomcat數據庫ip,用戶和密碼打開一個連接到數據庫?Tomcat和數據庫引用
我的情況是:我有一些在tomcat上運行的Servlet,並且幾乎所有這些Servlet都打開了一個到mySQL DB的連接並執行查詢。數據庫的IP地址,連接的用戶名和密碼總是相同的,所以我想要的是一個單獨的點來存儲這些信息,讓我可以輕鬆地修改這些信息,例如編輯一個簡單的txt文件或xml文件。
是否有正確的方法來設置tomcat數據庫ip,用戶和密碼打開一個連接到數據庫?Tomcat和數據庫引用
我的情況是:我有一些在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>
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();
你可以將它綁定到JNDI。 – Kayaman
https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html –
@ z10h22編寫連接到數據庫的代碼。是的,您可以在context.xml中將數據庫配置爲數據庫,例如,http://stackoverflow.com/questions/39724146/scada-lts-no-datasource-specified-error這是JNDI。 – Grzesiek