Sin más ADO, el código clave es el siguiente:
1. Código: DBContexTholder
clase pública dbContexTholder {// ThreadSafe ThreadLocalPrivate Static final ThreadLocal <String> contexTholder = new ThreadLocal <String> (); public static void setDBType (string dbType) {contextholder.set (dbtype);} public static string () {retorny {Return (((String) CoTExTholder.get ());} public static void clearDBType () {cotexTholder.remove ();}} 2. Código: DynamicDataSource
importar org.springframework.jdbc.dataSource.lookup.AbstracTroutingDataSource; public class DynamicDataSource extiende AbstractRoutingDataSource {@OverridePublic Object DetermineCurrentlookUpkey () {return dbContextholder.getdbtype ();}} 3. Código: Spring.xml
<!-Archivo de configuración de propiedad de origen de datos-> <context: Property-placeholder ubicación = "classpath: ibatis.properties" /> <bean id = "jksh" destruye-method = "cerrar"> <!-info de conexión-> <propiedad name = "controlador name = "username" value = "$ {username.jksh}" /> <propiedad name = "contraseña" valor = "$ {contraseña.jksh}" /> <!-conexión de conexión de conexión información-> <propiedad name = "maxidle" value = "$ {maxidle.jksh}" /> <> <nombre de propiedad = "value" value "$ {maxactive.jksh.jksh "jshhmhy" <rthy "<putoly" {mAxCactive.jsh. name = "defaultAutOcommit" value = "false" /> <propiedad name = "TimetweeWeeVictionRunsMillis" value = "$ {TimeBeteVictionRunsMillis.jksh}" /> <Property name = "mineVictableDletImillis" Value = "$ {mineVictableIdletImemillis.jksh id = "jclt" destruir-method = "cerrar"> <!-info de conexión-> <propiedad name = "controladorclassname" valor = "$ {controlador.jclt}" /> <propiedad name = "url" value = "$ {url.jclt}" /> <name de propiedad = "username" value = "$ {username.jclt}" /> <n. value = "$ {contraseña.jclt}" /> <!-Información de agrupación de conexión de conexión-> <propiedad name = "maxidle" value = "$ {maxidle.jclt}" /> <propiedad name = "maxactive" value = "$ {maxactive.jclt}" /> <name de propiedad = "predeterminado" value = "false" />> <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad <propiedad de propiedad name = "TimeBetSeeVictionRunsMillis" Value = "$ {TimeBetSeeEvictionRunSmillis.jclt}" /> <Property Name = "mindetLetIdLetiMeMillSeS" Valor = " key-type = "java.lang.string"> <entry key = "jksh" value-ref = "jksh" /> <entry key = "jclt" value-ref = "jclt" /> < /map> </property> <Property name = "DefaultDataSource" Ref = "jksh" /> < /bean> 4. Código: Método principal
import javax.sql.dataSource; import org.springframework.context.applicationContext; import org.springframework.context.support.classpathxmlaPplicationContex com.jclt.service.commons.dbcontextholder; import com.jclt.service.model.user; importar org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlsessionFactory; import org.mybatis.spring.sqlsession Args*/public static void main (string [] args) {ApplicationContext appContext = new ClassPathXMLApPlicationContext ("Client-Beans.xml"); dbContexTholder.SetDBType ("jclt"); string re = "src/main/recursos/ibatis-config.xml"; dataSource); dataSource = (dataSource) appContext.getBean ("DataSource"); SqlSessionFactoryBean Bean = new SqlSessionFactoryRyRyR (); Bean.SetDataSource (DataSource); Resource Resource = New FilesystemResource (res); Bean.SetConfigLocation (Resource); Prueb session = sessionFactory.Opensession (); user user = session.selectone ("com.jclt.service.dao.readjkksh.findone"); system.out.println (user.getName ());} Catch (Exception e) {e.PrintStackTace ();} dbcontexTholder.setbType ("Jksh"); res1 = "src/main/recursos/ibatis-config.xml"; dataSource dataSource1 = (dataSource) appContext.getBean ("dataSource"); sqlsessionFactoryBean bean1 = new sqlSessionFactoryBean (); bean1.setDataSource (datAsource1); recursos de recursos recursos1 = new SqlSessionBean ();); Filesystemresource (res1); bean1.setConfigLocation (recurse1); intente {sqlSessionFactory sessionFactory = bean.getObject (); sqlsession session = sessionFactory.opensession (); user user = session.selectone ("com.jclt.service.dao.readjksh.findone"); system.out.println (user.getName ());} Catch (Exception e) {E.PrintStacktrace ();}}}Lo anterior es la combinación de Spring y MyBatis para implementar la función de conmutación de origen de datos múltiples que el editor le presentó. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!