一个WEB应用怎么配置两个数据源,并根据不同查询使用不同数据源?(具体情况请见帖子内容)
各位大侠好!
目前系统情况:
我们的系统是SSH架构的,工程是用websphere发布的,数据源也是在websphere上配置的,就是JNDI数据源吧。
需求:
现在我想再配置一个数据源,也就是有两个数据源,在使用系统功能点击某几个报表时,可以用新的数据源进行查询数据,而其他报表还是用旧的数据源,并且也不会影响到其他功能的插入更新数据库。
进展情况:我了解到的方法首先是在websphere上配置新数据源,具体怎么配这个不操心,有人配。其次是更改项目中的WEB.XML文件,再加一个配置,如下:
<resource-ref> <description>Oracle Datasource</description> <res-ref-name>jdbc/旧数据源名</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <description>Oracle Datasource</description> <res-ref-name>jdbc/新数据源名</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
public List<Object> getXXXReport(DTOReports rc) { StringBuffer sqlString = new StringBuffer();/**SQL拼装语句,忽略**/ //查询 List<Object> result = (List<Object>) this.getJpaTemplate().execute( new JpaCallback() { public Object doInJpa(EntityManager entitymanager) throws PersistenceException { Query query = entitymanager.createNativeQuery(sqlString .toString()); List<Object> list = query.getResultList(); return list; } }); return result; }