Tutorial ini lebih praktis. Pemrogram secara langsung menambahkan kode salinan ke proyek mereka sendiri dan dapat menggunakannya dengan hanya memodifikasi dan memodifikasinya. Namun, Springboot dan Mybatis tidak diperkenalkan di sini. Jika ada pembaca yang ingin tahu, mereka dapat meninggalkan saya pesan dan terus memperhatikan. Saya akan memperbaruinya secara perlahan di masa depan. (Bagian Kode Area Hitam, ponsel Android dapat secara manual menggesek ke kiri untuk melihat semua kode)
Faktanya, integrasinya sangat sederhana. Jika Anda menggunakan Gradle, tambahkan di file build.gradle.
compile ('org.mybatis.spring.boot: mybatis-spring-boot-starter: 1.3.1')Jika Anda menggunakan Maven, tambahkan di file pom.xml
Konfigurasi Perpustakaan Tunggal:
Setelah diperkenalkan, secara default, Spring Boot akan secara otomatis mengkonfigurasi sumber data untuk kami, yang akan mencari paket ClassPath untuk JAR H2, HSQLDB dan lainnya dalam database memori. Jika ditemukan, itu akan secara otomatis mengkonfigurasi sumber data untuk database memori.
Jika parameter konfigurasi yang relevan dari spring.datasource.* Ditentukan dalam application.yml atau application.property , Spring Boot akan menggunakan konfigurasi ini untuk membuat sumber data.
Kemudian, SQLSessionFactoryBean dan SQLSessionTemplate menggunakan DataSource akan dibuat secara otomatis. Mapper Anda akan dipindai secara otomatis, terhubung ke SQLSessionTemplate, dan terdaftar ke konteks pegas.
spring.datasource.url = jdbc: mysql: // localhost/test spring.datasource.userName = dbuser spring.datasource.password = dbpass spring.datasource.driver-class-name = com.mysql.jdbc.driver
Untuk parameter lebih lanjut, silakan lihat DataSourceProperties
Konfigurasi multi-perpustakaan:
Karena kebutuhan bisnis, proyek perlu menggunakan beberapa database untuk pengembangan bisnis secara bersamaan:
Pertama, kita harus menyesuaikan konfigurasi dua sumber data di Application.property, satu menggunakan First.DataSource.* Dan yang lainnya menggunakan Second.Datasource.*. Untuk membiarkan orang lain melihat perpustakaan apa yang terhubung secara sekilas, Anda dapat menggunakan penamaan database. Misalnya, perpustakaan pengguna, dan Anda dapat menggunakan user.datasource.*. Saat menggunakan beberapa sumber data, semua konfigurasi yang diperlukan tidak dapat dihilangkan.
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 Saya menggunakan druid, Anda juga tidak bisa menambahkan default Second.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
Saya langsung mengunggah kode, pendekatan saya adalah membuat dua sumber data dengan dua kelas konfigurasi:
@Configuration @mapperscan (BasePackages = {"com.user.server.dao"}, sqlSessionTemplateRef = "UsersqlSessionTemplate") kelas publik USERMYBATISCONFIG {@bean (name = "UserDataSource") @primary @primary, @bean (name = "UserDataSource. Kelas berikutnya tidak perlu menambahkan @ConfigurationProperties (prefix = "first.dataSource") // Nilai awalan harus menjadi awalan dari properti yang sesuai di application.properteis public dataSource userDataSource () {return datasourceBuilder.create (). Build (); } @Bean Public SQLSessionFactory UsersQLSessionFactory (@Qualifier ("UserDataSource") DataSource DataSource) melempar Exception {sqlSessionFactoryBean bean = SQLSessionFactoryBean () baru; bean.setDataSource (DataSource); // Tambahkan XML Directory ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver (); coba {bean.setMapperLocations (resolver.getResources ("classpath*: com/user/server/dao/pemetaan/*. xml")); return bean.getObject (); } catch (Exception e) {E.PrintStackTrace (); Lempar RuntimeException baru (E); } } @Bean public SqlSessionTemplate userSqlSessionTemplate(@Qualifier("userSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); // Gunakan pabrik yang dikonfigurasi di atas untuk mengembalikan template; }} @Configuration @mapperscan (basepackages = {"com.airmi.server.dao"}, sqlSessionTemplateRef = "autotestsqlSessionTemplate") publiccourcours = prefix (newasconfig {@bean @dean @configurationprigure (prefix = prefix = autotestDataSource () {return DataSourceBuilder.Create (). Build (); } @Bean public SqlSessionTemplate autoTestSqlSessionTemplate(@Qualifier("autoTestSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); Template Kembalikan; } @Bean Public SQLSessionFactory AutoTestSQLSessionFactory (@Qualifier ("AutoTestDataSource") DataSource DataSource) melempar pengecualian {sqlSessionFactoryBean bean = new SqlSessionFactoryBean (); bean.setDataSource (DataSource); // Tambahkan XML Directory ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver (); coba {bean.setMapperLocations (resolver.getResources ("classpath*: com/airmi/server/dao/pemetaan/*. xml")); return bean.getObject (); } catch (Exception e) {E.PrintStackTrace (); Lempar RuntimeException baru (E); }}}@Primary // Anotasi ini berarti bahwa ketika ada beberapa kelas implementasi untuk menyuntikkan antarmuka yang sama, tidak perlu untuk memungkinkan anotasi autowire melaporkan kesalahan. Situs web resmi mensyaratkan bahwa ketika beberapa sumber data, satu sumber data harus ditentukan, dan sumber data lain tidak perlu ditambahkan.
@Qualifier injection dengan nama biasanya disuntikkan dalam satu contoh dengan beberapa jenis (misalnya, ada beberapa contoh jenis sumber data).
@MappersCan (BasEpackages = {"com.user.server.dao"}, sqlSessionTemplateRef = "UsersqlSessionTemplate") Basepackages adalah paket di mana mapper berada, instance yang akan dirujuk oleh SQLSessionTempLateREF.Struktur kode pengguna adalah sebagai berikut:
Meringkaskan
Di atas adalah metode implementasi Spring Boot mengintegrasikan mybatis menggunakan beberapa sumber data yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!