/ / Как да се свържете с няколко бази данни чрез MyBatis Spring Integration? - база данни, пролет, мибатис

Как да се свържа с няколко бази данни чрез MyBatis Spring Integration? - база данни, пролет, мибатис

Използвам MyBatis с пролетната интеграция в мояприложение. Имаме няколко бази данни на Oracle в нашата компания. Една заявка трябва да бъде изпълнена в една база данни, друга трябва да бъде изпълнена в друга база данни. Как да конфигурирам MyBatis да използва различни връзки на базата данни за различни отправни въпроси?

Отговори:

3 за отговор № 1

Намерих отговор тук, Това решение не е най-доброто в някои случаи, но е добре за мен.


0 за отговор № 2

Това е едно от първите теми, обхванати в MyBatis3 Ръководство за потребителя. По принцип трябва да имате няколко конфигурационни XML файла за всяка база данни. Най-простият начин би бил създаването на картаьори чрез преминаване на конфигурацията

String resource = "org/mybatis/example/Configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlMapper = new SqlSessionFactoryBuilder().build(reader);

РЕДАКТИРАНЕ: Съжалявам, не беше внимателно четене. Както и да е, вярвам, че кодовият snipet е самообяснителен:

<jee:jndi-lookup id="jndiDatabase1"                jndi-name="jdbc/database1"/>
<jee:jndi-lookup id="jndiDatabase2"                jndi-name="jdbc/database2"/>

<bean id="database1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation"     value="classpath:/some/path/to/database1Config.xml"/>
<property name="dataSource"         ref="jndiDatabase1"/>
</bean>

<bean id="database2" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation"     value="classpath:/some/path/to/database2Config.xml"/>
<property name="dataSource"         ref="jndiDatabase2"/>
</bean>

0 за отговор № 3

Ако някой търси подкрепа различни видове бази данни, моят отговор е само за това.
От Mbbatis 3, той поддържа вътрешни мулти-данни. за подробна конфигурация се отнасят до официалната документация тук.

Следващото е как да го конфигурирате с Spring

<bean id="vendorProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="SQL Server">sqlserver</prop>
<prop key="DB2">db2</prop>
<prop key="Oracle">oracle</prop>
<prop key="MySQL">mysql</prop>
</props>
</property>
</bean>
<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
<property name="properties" ref="vendorProperties"/>
</bean>
<bean  id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="databaseIdProvider" ref="databaseIdProvider" />
</bean>