JNDI(Java Naming Directory Interface)
1.通过DataSource的名字查找对应的DataSource;
2.通过一个DataSource在连接池中获得一个Connection;
一,全局数据源的配置(配置了一个数据源后任何web应用都能使用)此方法没验证过
(1)将数据库的驱动程序复制到tomcat\lib中;
(2)在server.xml中加入:
<Context path="/Test" docBase="E:\JAVA WEB" reloadable="true"> <!-- 数据源需要在Context中配置--> <Resource name="jdbc/xiazdong" <!-- 数据源名称--> auth="Container" type="javax.sql.DataSource" maxActive="100" <!-- 最大连接数--> maxIdle="30" <!-- 最小连接数--> maxWait="10000" <!-- 最大等待时间--> username="root" password="123456" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/xiazdong"/> </Context>
(3)在web.xml中加入:
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/xiazdong</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
二,局部数据源配置
1,将数据库的驱动程序复制到tomcat\lib中;
2,在web应用根目录的meta-inf目录下新建context.xml文件,配置自己所需的数据源。可同时配置多个。
<?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/ipnet"> <Resource name="jdbc/ResourceManager" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="rm" password="rm1234" driverClassName="oracle.jdbc.driver.OracleDriver" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" url="jdbc:oracle:thin:@192.168.22.6:1521:orcl" /> <Resource name="jdbc/AlarmDb" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="fm5" password="fm51234" driverClassName="oracle.jdbc.driver.OracleDriver" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" url="jdbc:oracle:thin:@192.168.22.6:1521:orcl" /> <Resource name="jdbc/PerformanceDb" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="nhm" password="nhm1234" driverClassName="oracle.jdbc.driver.OracleDriver" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" url="jdbc:oracle:thin:@192.168.22.6:1521:orcl" /> </Context>
最后在代码中引用即可:
Context ctx = new InitialContext();
dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/ResourceManager");