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)