1.前言:
我們知道隨著用戶數量的增長,應用軟件的規模會逐步增大,同時也使應用的服務壓力愈發大。而首當其沖的無非是數據庫操作資源...
2.技術方案:
這裡采用jndi技術實現分庫讀寫(mysql和oracle數據庫集成)
3.具體實現:
a.配置tomcat的server.xml
<Context>
<Resource name="jdbc/mysql" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test"
username="admin" password="admin“
maxActive="100" maxIdle="30" maxWait="10000” />
<Resource name="jdbc/orcl" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.2:1521:orcl"
username="trigger" password="trigger"
maxActive="50" maxIdle="10" maxWait="10000"/>
</Context>
b.配置項目的web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/orcl</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
*注意: <res-ref-name>jdbc/mysql</res-ref-name>的值必須匹配 <Resource name="jdbc/mysql" auth="Container" ...的name,否則會出現錯誤
c.如何初始化資源鏈接:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
4.總結:
配置服務器(tomcat) ==》配置項目的web.xml ==》在項目中引入數據庫驅動包 ==》獲取數據庫連接
5.分享和交流:
如有纰漏!望各位看客斧正,謝謝
6.引用資源:
JNDI 在 J2EE 中的角色(http://www.ibm.com/developerworks/cn/java/j-jndi/)
JNDI Datasource HOW-TO(https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#Introduction)