Mybatis-plus (MP singkat) adalah alat peningkatan mybatis. Berdasarkan mybatis, itu hanya meningkatkan dan tidak berubah, dan dilahirkan untuk menyederhanakan pengembangan dan meningkatkan efisiensi.
Dokumen Cina: http://baomidou.oschina.io/mybatis-plus-doc/#/
Artikel ini memperkenalkan
1) Cara Membangunnya
2) pembuatan kode (pengontrol, layanan, mapper, xml)
3) Kelas crud, kueri bersyarat, dan pagination dari satu tabel telah dilakukan untuk Anda
1. Cara membangunnya
1. Pertama kami membuat proyek Springboot -> https://start.spring.io/
2. Ketergantungan Maven
<dependency> <GroupId> com.baomidou </groupid> <ArtifactId> mybatis-plus-boot-starter </arttifactid> <version> 2.3 </version> </dependency> <!-Ketergantungan alifik Code-> <groupid> <groupid> ORG.APACE.VELOCITY </Groupity </groupacy> <groupine> <groupid> org.apority </velocity </groupity> <version> 2.0 </version> </gantisan>
3. Konfigurasi (karena saya merasa terlalu bertele -tele, konfigurasi sumber data dihilangkan di sini)
application.properties
mybatis-plus.mapper-locations = classpath: /mapper/*mapper.xmlmybatis-plus.typealiSespackage=com.taven.web.springbootmp.entitymybatis-plus-config.id-type=3mybatis-platis-platis-platis-platis-platis Egy = 2mybatis-plus.global-config.db-column-blinline = truemybatis-plus.global-config.key-generator = com.baomidou.mybatisplus.crementer.oracleKeyGeneratormybatis-LLOBLOBAL-COLLOBAL-CONF-CONFOLLE mybatis-plus.global-config.logic-not-delete-value = 0mybatis-plus.global-config.sql-injector = com.baomidou.mybatisplus.mapper.logicsqleclector#ini perlu diubah menjadi kelas-mybatis-plat Anda. .taven.web.springbootmp.mymetaobjecthandlermybatis-plus.configuration.map-sunderscore-to-camel = truemybatis-plus.configuration.cache-enabled = falsemybatis-slus-configuration.jdrus.jlivururation.jdbiguration.jdbiguration.jdbiguration.jdbiguration.jdbiguration.jdbiguration.jdbiguration.jdbrus.jdBcccor-brdor-boLPor = BBREVERCECECECECECECECECE yang lain ”
Kelas Konfigurasi mybatisplusconfig
impor org.mybatis.spring.annotation.mapperscan; impor org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration; impor com.baomidou.mybatisplus.crementer.h2keygen; com.baomidou.mybatisplus.incrementer.ikeygenerator; import com.baomidou.mybatisplus.mapper.isqlinjector; impor com.baomidou.mybatisplus.mapper.logicsqleclector; impor com.baoMidou.mybateSpl.mappersplus com.baomidou.mybatisplus.plugins.paginationInterceptor; impor com.baomidou.mybatisplus.plugins.performanceInterceptor; impor com.taven.web.springbootmp.MyMetaObjectHandler;@EnableTransactionManagement@Configuration@MapperScan("com.taven.web.springbootmp.mapper")public class MybatisPlusConfig { /** * mybatis-plus SQL execution efficiency plug-in [can be closed in production environment] */ @Bean public PerformanceInterceptor PerformanceInterceptor () {return new PerformanceInterCeptor (); } / * * Plug-in pagination, secara otomatis mengidentifikasi multi-tenant dalam jenis database, silakan merujuk ke situs web resmi [ekstensi plugin] * / @bean paginationinterceptor paginationInterceptor () {return new PaginationInterceptor (); } @Bean metaobjecthandler metaobjecthandler () {return mymetaobjecthandler baru (); } / *** Generator kunci primer injeksi* / @bean public iKeyGenerator keyGenerator () {return h2keygenerator baru (); } / *** Injeksi SQL Injeksi* / @Bean PUBLIK ISQLINECTOR SQLINDERJECTOR () {return new LogicSQlinjector (); }} Impor com.baomidou.mybatisplus.mapper.metaobjecthandler; impor org.apache.ibatis.reflection.metaobject; complicon-/slf4j.logger; Impor org.slf4j.loggerFactory;/** ** ** Fields Otomatis, MyMetaObjecthandler memperluas metaobjecthandler {logger statis final yang dilindungi = loggerFactory.getLogger (application.class); @Override public void InsertFill (metaObject metaObject) {logger.info ("Lakukan sesuatu yang tidak dapat dijelaskan saat ditambahkan"); } @Override public void updateFill (metaObject metaObject) {logger.info ("Lakukan sesuatu yang tidak dapat dideskripsikan saat diperbarui"); }} 2. Pembuatan Kode
Eksekusi JUnit untuk menghasilkan pengontrol, antarmuka layanan, implementasi, mapper dan XML
Impor org.junit.test; impor com.baomidou.mybatisplus.generator.autogenerator; impor com.baomidou.mybatisplus.generator.config.datasourconfig; import com.baomidou.mybatispluscle.generator.generator.conerator.generator.conerator.generator.conerator.generator.conerator.generator.baomidou.mybatispluscleor.generator.conerator.conerator.conerator.conerator.conerator.conerator.conerator.conerator.conerator.conerator.baomidou.mybatisclusor.generator.conoror.baomidou com.baomidou.mybatisplus.generator.config.packageconfig; impor com.baomidou.mybatisplus.generator.config.strategyconfig; import com.baomidou.mybatisplus.generator.config.rules.dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb kontror; com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;/** * <p> * Test generation code* </p> * * @author K God* @date 2017/12/18 */public class GeneratorServiceEntity { @Test public void generateCode() { String packageName = "com.taven.web.springbootmp"; boolean serviceNamestArtwithi = false; // user -> UserService, Set ke true: User -> iuserservice GenerateByTables (serviceNamestArtwithi, packageName, "Cable", "Station"); // Modifikasi ke Tabel Anda} pangkal Private PACKEMEBENTES (BOOLEAN ServiceMenamestArgIngia {Boolean ServicenamSartwithwithwithwithi, string {Boolean servicenamsartwithwithwithwithwithwithi, string pangkal {boolean servicenamsartwithwithwithwithwithwithwithwithwithwith GlobalConfig (); String dburl = "jdbc: mysql: // localhost: 3306/communicate"; DataSourCeConfig DataSourCeConfig = new DataSourCeConfig (); DataSourCeConfig.SetDBtype (dbtype.mysql) .setUrl (dBURL) .setUserName ("root") .setPassword ("root") .setDrivername ("com.mysql.jdbc.driver"); StrategyConfig StrategyConfig = New StrategyConfig (); StrategyConfig .setCapitalMode (true) .setentitylombokmodel (false) .setDbColumnunderline (true) .setnaming (namingstrategy.underline_to_camel) .setinclude (tableNames); // Modifikasi dan ganti dengan nama tabel yang Anda butuhkan, memberikan beberapa nama meja ke array. Tianwen ") .setoutputDir (" e: // dev // stsdev // spring-boot-mp // src // main // java ") .setFileOverride (true); if (! ServiceNamestArtIrI) {config.setserviceName ("%sService"); } autogenerator baru (). setGlobalConfig (config) .setDataSource (DataSourCeConfig) .SetStrategy (StrategyConfig) .setPackageInfo (packageConfig baru () .setParent (packageName) .setController ("controller") .setentity ("packageName) .setController (" controller ") .setentity (" } // private void generateByTables (string packageName, string ... tableNames) {// geneateByTables (true, packageName, tableName); //}}Konstruksi pada dasarnya telah selesai pada saat ini, dan Anda dapat mulai menggunakannya di bawah ini!
3. Gunakan mybatis-plus
Pertama, kami menjalankan generatedCode () di atas dan menghasilkan kode berikut untuk kami berdasarkan struktur tabel (XML dipindahkan ke yang berikut secara manual). Layanan dan mapper telah mewarisi kelas dasar dan merangkum banyak metode untuk kami. Mari kita lihat beberapa contoh sederhana di bawah ini.
/** * <p> * Pengontrol front-end * </p> * * @author yin tianwen * @since 2018-05-31 */ @controller @requestMapping ("/kabel") Kelas publik CableController {@Autowired private cableService cabelservice; /*** Tes Kueri Daftar**/@RequestMapping ("/1") @ResponseBody Objek Public Test1 () {// Bangun objek EntityWrapper yang sesuai dengan entitas dan filter dan kueri EntityWrapper <Kable> ew = EntityWrapper baru <> (); ew.where ("type = {0}", 1) .seaft ("name", "king") .and ("core_number = {0}", 24) .and ("is_delete = 0"); Daftar <Kable> Daftar = cableservice.selectlist (EW); Daftar <peta <String, Object >> Maps = cableService.SelectMaps (EW); System.out.println (daftar); System.out.println (peta); Kembalikan "OK"; }/*** Pagination Query Test*/@RequestMapping ("/2") @ResponseBody Public Object Test2 () {// Bangun objek EntityWrapper yang sesuai dengan entitas dan lakukan pemfilteran EntityWrapper <Kable> ew = EntityWrapper baru <> (); ew.where ("type = {0}", 1) // .seaft ("name", "king") .and ("core_number = {0}", 24) .and ("is_delete = 0"); Halaman <Kable> halaman = halaman baru <> (1,10); Halaman <Kable> pagerst = cabelservice.selectpage (halaman, ew); mengembalikan pagerst; }/*** Bidang kueri khusus*/@RequestMapping ("/3") @ResponseBody Objek Public Test3 () {Object vl = null; // Bangun objek EntityWrapper yang sesuai dengan entitas dan lakukan pemfilteran EntityWrapper <Kable> ew = EntityWrapper baru <> (); ew.setsqlselect ("id,` name`, " +" case type/n " +" ketika 1 lalu '220kv'/n " +" end typename ") .where (" type = {0} ", 1) //. seperti" name "," King "). Di mana (false," voltage_level =#{0} "," voltage, "voltage_level =#{0}," voltage =#{0}, "voltage =#{0 {0}, Halaman <> (1,10); Halaman <Kable> pagerst = cabelservice.selectpage (halaman, ew); mengembalikan pagerst; }/** * Masukkan */@RequestMapping ("/4") @ResponseBody Objek Public Test4 () {Cable C = baru kabel (); C.SetName ("Uji Kabel Optik"); CableService.insert (C); Kembalikan "OK"; }/** * Perbarui */@RequestMapping ("/5") @ResponseBody Public Object Test5 () {Cable C = CableService.SelectById (22284L); c.setname ("Uji kabel optik 2222"); C.SetType (1); cableService.updatebyId (C); Kembalikan "OK"; }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.