Este tutorial es más práctico. Los programadores agrega directamente el código de copia a sus propios proyectos y pueden usarlo simplemente modificándolo y modificándolo. Sin embargo, Springboot y MyBatis no se presentan aquí. Si alguno de los lectores quiere saber, pueden dejarme un mensaje y continuar prestando atención. Lo actualizaré lentamente en el futuro. (Sección de código de área negra, el teléfono Android puede deslizar manualmente a la izquierda para ver todos los códigos)
De hecho, la integración es muy simple. Si usa Gradle, agrégalo en el archivo build.gradle.
compilar ('org.mybatis.spring.boot: mybatis-spring-boot starter: 1.3.1')Si usa Maven, agrégalo en el archivo pom.xml
Configuración de la biblioteca única:
Después de la introducción, de forma predeterminada, Spring Boot configurará automáticamente una fuente de datos para nosotros, que buscará el ClassPath para los paquetes JAR de H2, HSQLDB y otros en bases de datos de memoria. Si se encuentra, configurará automáticamente una fuente de datos para la base de datos de memoria.
Si los parámetros de configuración relevantes de spring.datasource.* Se especifican en Application.yml o application.property , Spring Boot utilizará esta configuración para crear un DataSource.
Luego, el SQLSessionFactoryBean y SQLSessionTemplate utilizando el DataSource se creará automáticamente. Sus mapeadores se escanearán automáticamente, se conectarán a SQLSessionTemplate y se registrarán en el contexto de Spring.
spring.datasource.url = jdbc: mysql: // localhost/test spring.dataSource.username = dbuser spring.datasource.password = dbpass spring.datasource.driver-class-name = com.mysql.jdbc.driver
Para obtener más parámetros, consulte DataSourceProperties
Configuración de bibliotecas múltiples:
Debido a las necesidades comerciales, el proyecto debe utilizar múltiples bases de datos para el desarrollo de negocios al mismo tiempo:
Primero, debemos personalizar la configuración de dos fuentes de datos en la aplicación. Para dejar que otros vean qué biblioteca está conectada de un vistazo, puede usar el nombre de la base de datos. Por ejemplo, la biblioteca de usuario, y puede usar user.dataSource.*. Al usar múltiples fuentes de datos, no se pueden omitir todas las configuraciones necesarias.
first.datasource.url = JDBC: mysql: //localhost/firstfirst.datasource.username=dbuser1first.datasource.password=dbpass1fi rst.datasource.driver-class-name = com.mysql.jdbc.driverfirst.datasource.type = com.alibaba.druid.pool.druiddataSource // i Estoy usando druid, tampoco puede agregar el valor predeterminado segundo.datasource.url = JDBC: mysql: //localhost/secondSecond.datasource.username=dbuser2second.datasource.password=dbpa ss2second.datasource.driver-class-name = com.mysql.jdbc.driverse.datasource.type = com.alibaba.druid.pool.druiddataSource
Cargo directamente el código, mi enfoque es crear dos fuentes de datos con dos clases de configuración:
@Configuration @mapperscan (basepackages = {"com.user.server.dao"}, sqlsessionTemplAtef = "UsersqlSessionTemplate") Clase pública UsermyBatisconfig {@Bean (name = "UserDataSource") @Primary // Esta anotación debe agregarse, de lo contrario, se informará un error. La siguiente clase no necesita agregar @ConfigurationProperties (prefix = "First.DataSource") // El valor de prefijo debe ser el prefijo de la propiedad correspondiente en Application.Properteis Public DataSource userDataSource () {return dataSourceBuilder.create (). Build ();; } @Bean public sqlSessionFactory UsersqlSessionFactory (@Qualifier ("UserDataSource") DataSource DataSource) lanza la excepción {SQLSessionFactory Bean = new SqlSessionFactoryBean (); Bean.SetDataSource (DataSource); // Agregar directorio XML recocescePatterNResolver resolver = new PathMatchingResourCePternResolver (); Pruebe {bean.setMapperLocations (resolver.getResources ("classpath*: com/user/server/dao/mapping/*. xml")); return bean.getObject (); } catch (Exception e) {E.PrintStackTrace (); tirar nueva runtimeException (e); }} @Bean public sqlSessionTemplate UsersqlSessionTemplate (@Qualifier ("UsersqlSessionFactory") sqlSessionFactory sqlsessionFactory) lanza la excepción {sqlsessionTemplate plantlate = new sqlSessionTemplate (sqlsessionFactory); // Use la fábrica configurada anteriormente para devolver la plantilla; }} @Configuration @mapperscan (basepackages = {"com.airmi.server.dao"}, sqlSessionTempLateRef = "autotestsqlSessionTemplate") clase pública autotestmybatisconfig {@Bean @ConfiguriningProperties (prefix = "AUTOTEST.DATES autoTestDataSource () {return dataSourceBuilder.create (). Build (); } @Bean public sqlSessionTemplate AutotestSqlSessionTemplate (@Qualifier ("AutotestSqlSessionFactory") SqlSessionFactory SqlSessionFactory) lanza la excepción {SqlSessionTemplate Template = New SqlSessionTemplate (SqlsessionFactory); plantilla de retorno; } @Bean public sqlSessionFactory AutotestsqlSessionFactory (@Qualifier ("AutotestDataSource") DataSource DataSource) lanza la excepción {sqlSessionFactoryBean Bean = new SqlSessionFactoryBean (); Bean.SetDataSource (DataSource); // Agregar directorio XML recocescePatterNResolver resolver = new PathMatchingResourCePternResolver (); Pruebe {bean.setMapperLocations (resolver.getResources ("classpath*: com/airMi/server/dao/mapping/*. xml")); return bean.getObject (); } catch (Exception e) {E.PrintStackTrace (); tirar nueva runtimeException (e); }}}@Primary // Esta anotación significa que cuando hay múltiples clases de implementación para inyectar en la misma interfaz, no es necesario permitir que la anotación de AutoWire informe un error. El sitio web oficial requiere que, cuando se deben especificar múltiples fuentes de datos, se debe especificar una fuente de datos, y no es necesario agregar otra fuente de datos.
La inyección de @qualifier por nombre generalmente se inyecta en una instancia con múltiples tipos (por ejemplo, hay múltiples instancias de tipo de datos).
@Mapperscan (basepackages = {"com.user.server.dao"}, sqlsessionTempLateRef = "UsersqlSessionTemplate") BasePackages es el paquete donde se encuentra el mapeador, la instancia a la que se debe hacer referencia a SQLSessionTemAtef.La estructura del código de usuario es la siguiente:
Resumir
Lo anterior es el método de implementación de Boot Spring Integrating MyBatis utilizando múltiples fuentes de datos introducidas por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!