前几天有朋友问Tomcat 中配置多数据源,做了个小例子。
数据源: 本机MySQL的2个数据库 mydb1, mydb2
先在Eclipse中建立一个Web项目, 我的叫MyWebApp
在apache-tomcat-5.5.17\conf\Catalina\localhost中,建立名为MyWebApp.xml的文件,在其中指明项目路径和数据源配置,内容如下:
xml 代码
- <Context path="/" docBase="D:/workspaceWTP1.5/MyWebApp/web" debug="99" reloadable="true">
- <Logger className="org.apache.catalina.logger.FileLogger" prefix="dvs." suffix=".txt" timestamp="true"/>
- <Resource
- name="jdbc/mydb1"
- type="javax.sql.DataSource"
- driverClassName="com.mysql.jdbc.Driver"
- maxIdle="30"
- maxWait="10000"
- username=""
- password=""
- url="jdbc:mysql://localhost/mydb1?autoReconnect=true&useUnicode=true&characterEncoding=utf-8"
- maxActive="100"/>
-
- <Resource
- name="jdbc/mydb2"
- type="javax.sql.DataSource"
- driverClassName="com.mysql.jdbc.Driver"
- maxIdle="30"
- maxWait="10000"
- username=""
- password=""
- url="jdbc:mysql://localhost/mydb2?autoReconnect=true&useUnicode=true&characterEncoding=utf-8"
- maxActive="100"/>
- </Context>
然后在MyWebApp项目的WEB-INF/web.xml 中引用这两个数据源
xml 代码
- <resource-env-ref>
- <description>myDB1 Connection</description>
- <resource-env-ref-name>jdbc/mydb1</resource-env-ref-name>
- <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
- </resource-env-ref>
-
- <resource-env-ref>
- <description>myDB2 Connection</description>
- <resource-env-ref-name>jdbc/mydb2</resource-env-ref-name>
- <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
- </resource-env-ref>
这样就可以在web应用中使用这两个数据源了,可以写个简单的servlet测试
java 代码
- public static final String namespace = "java:comp/env";
-
- public DataSource getDataSource(String resourceName) throws NamingException {
- InitialContext init = new InitialContext();
- Context ctx = (Context)init.lookup(namespace);
- return (DataSource)ctx.lookup(resourceName);
- }
-
- private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException, NamingException, SQLException {
- DataSource ds1 = getDataSource("jdbc/mydb1");
- DataSource ds2 = getDataSource("jdbc/mydb2");
-
- response.getWriter().println("DataSource ds1 is : " + ds1);
- response.getWriter().println("DataSource ds2 is : " + ds2);
-
- Connection conn1 = ds1.getConnection();
- String sql1 = "select email from users where id = 15";
- response.getWriter().println("email is : " + executeQuery(conn1, sql1));
-
- Connection conn2 = ds2.getConnection();
- String sql2 = "select product_name from products where id = 1";
- response.getWriter().println("Product Name is : " + executeQuery(conn2, sql2));
- }
其中executeQuery方法就是简单的数据库查询,这里就不详细写了.
如果使用Hibernate也很简单,只要在两个不同的hibernate.cfg.xml文件中分别指定不同的hibernate.connection.datasource就可以了.
分享到:
相关推荐
tomcat配置jdbc数据源,虽然现在基本已经不用tomcat自带的数据源啦,需要的大家看看
详细介绍在tomcat中配置数据源原理
在Tomcat配置JNDI数据源的三种方式
tomcat 配置工程 数据源
tomcat配置数据源所需jar包,把jar放到tomcat文件夹下的lib里面
Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程 Tomcat jndi 配置数据源过程
tomcat上配置的JNDI数据源的几种方式
Tomcat配置JNDI数据源的N种方法
TomCat5.5数据源配置
自己总结的三种使用方式,对比来看选择最适合你的方式
基于JNDI,在Tomcat5.5中配置数据源
tomcat配置jndi几个方式
tomcat 用数据源 连接数据库 避免了jdbc的频繁连接和关闭数据库
用于在tomcat中配置java数据源用于在tomcat中配置java数据源用于在tomcat中配置java数据源用于在tomcat中配置java数据源用于在tomcat中配置java数据源。
在Tomcat配置数据源有多种方法,这里主要详细介绍通过JNDI来配置数据源.在实际项目中经常用到.
在tomcat中配置数据源连接池的配置方法,及jar包文件。
本文档说明tomcat 5.5数据源配置
debug="5" reloadable="true" crossContext="true"> className="org.apache.catalina.logger.FileLogger" prefix="localhost_MysqlTest_log." suffix=".txt" timestamp="true"/> ...
该例子用于tomcat下sqlserver数据源的配置
NULL 博文链接:https://wy649898543.iteye.com/blog/1423655