实现步骤如下:

  1. 在Spring配置文件中添加Oracle数据源的配置,例如:
<bean id="oracleDataSource" class="oracle.jdbc.pool.OracleDataSource">
    <property name="URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
    <property name="user" value="username"/>
    <property name="password" value="password"/>
</bean>
  1. 在Spring配置文件中添加第二个数据源的配置,例如:
<bean id="secondDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="username" value="root"/>
    <property name="password" value="password"/>
</bean>
  1. 在Spring配置文件中配置两个数据源的事务管理器,例如:
<bean id="oracleTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="oracleDataSource"/>
</bean>

<bean id="secondTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="secondDataSource"/>
</bean>
  1. 在Spring配置文件中配置两个数据源的JdbcTemplate,例如:
<bean id="oracleJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="oracleDataSource"/>
</bean>

<bean id="secondJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="secondDataSource"/>
</bean>
  1. 在Java代码中使用JdbcTemplate查询数据源中表的记录,例如:
@Autowired
private JdbcTemplate oracleJdbcTemplate;

@Autowired
private JdbcTemplate secondJdbcTemplate;

public List<Map<String, Object>> getOracleRecords() {
    String sql = "SELECT * FROM table_name";
    return oracleJdbcTemplate.queryForList(sql);
}

public List<Map<String, Object>> getSecondRecords() {
    String sql = "SELECT * FROM table_name";
    return secondJdbcTemplate.queryForList(sql);
}

注意事项:

  1. 在使用多个数据源时,需要为每个数据源配置一个独立的事务管理器和JdbcTemplate。
  2. 在使用JdbcTemplate查询数据时,需要编写SQL语句并指定数据源的JdbcTemplate进行查询
javaweb项目使用springmvc增加额外的oracle数据源通过程序查询数据源中表的记录ListMap

原文地址: https://www.cveoy.top/t/topic/enf4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录