Множественное подключение к базе данных для приложения mybatis и весенней загрузки с использованием config.xml

мне нужно подключиться к нескольким базам данных, настроенным в моем файле config.xml

config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>

     <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.ibm.as400.access.AS400JDBCDriver"/>
                <property name="url" value="url"/>
                <property name="username" value="usernmae"/>
                <property name="password" value="password"/>
            </dataSource>
       </environment>
          <environment id="test">
          <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.ibm.as400.access.AS400JDBCDriver"/>
                <property name="url" value="url"/>
                <property name="username" value="usernmae"/>
                <property name="password" value="password"/>
            </dataSource>
       </environment>


     </environments> 

</configuration>

я использую интерфейс картографа и mapper.xml для запросов

Интерфейс картографа

 @Mapper
    public interface OrderMapper {
     List<Order> selectAll();
     }

Mapper.xml

<mapper namespace="com.mapper.OrderMapper" >

 <resultMap id="result" type="com.mapper.Order">
    <result property="orderId"  jdbcType="NUMERIC" column="ORD_ORDER_ID"/>  
 </resultMap> 

  <select id="selectAll" resultMap="result">
    SELECT * FROM table
  </select>
</mapper>

Приложение.properties

mybatis.config-location = classpath:./config.xml
mybatis.mapper-locations=./mapper/*.xml

Я могу работать с одной базой данных, используя источник данных spring в файле свойств. Я не могу заставить его работать через файл конфигурации. Что я делаю неправильно?


person Mohit Anand    schedule 13.04.2018    source источник
comment
Это может помочь вам medium.com/@d.lopez.j/   -  person Bejond    schedule 13.04.2018
comment
я хочу использовать config.xml для настройки источника данных.   -  person Mohit Anand    schedule 13.04.2018
comment
проверьте этот programering.com/a/MDM3QDNwATM.html   -  person Bejond    schedule 13.04.2018


Ответы (1)


Spring не знает об источниках данных, настроенных в mybatis. Spring должен иметь доступ к источнику данных, чтобы иметь возможность создавать соединения. В весенней загрузке в простом случае это делается с помощью DataSourceTransactionManager, который использует источник данных, настроенный в контексте Spring.

Если вы хотите изменить это, вам потребуется реализовать собственный PlatformTransactionManager аналогичен DataSourceTransactionManager, но использует источники данных, созданные и управляемые mybatis. Это, вероятно, можно сделать, обратившись к объекту mybatis Configuration, созданному MybatisAutoConfiguration, если вы используете весеннюю загрузку (или, возможно, вам даже нужно будет проверить, как создаются источники данных и внедряются в контекст весны). Это довольно сложно, и вы пойдете против того, как это должно быть (а именно, чтобы определить источники данных в контексте весны).

person Roman Konoval    schedule 13.04.2018