国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot 2.x(五):整合Mybatis-Plus

AaronYuan / 662人閱讀

摘要:的作用可以看到,它給我們提供了一些核心的功能代碼生成器和現成的接口以及可以結合的條件構造器使我們的代碼變得足夠優雅,分頁的使用也是相當的方便,以及提供了不同的主鍵生成策略。

簡介

Mybatis-Plus是在Mybatis的基礎上,國人開發的一款持久層框架。

并且榮獲了2018年度開源中國最受歡迎的中國軟件TOP5

同樣以簡化開發為宗旨的Spring BootMybatis-Plus放在一起會產生什么樣的化學反應呢?下面我們來領略一下兩者配合帶來的效率上的提升。

Mybatis-Plus的作用

可以看到,它給我們提供了一些核心的功能:代碼生成器和現成的CRUD接口以及可以結合Lambda的條件構造器使我們的代碼變得足夠優雅,分頁的使用也是相當的方便,以及提供了不同的主鍵生成策略。
如果這些功能不能滿足我們的需求,Mybatis-Plus還提供了豐富的插件供我們去使用,我們接下來只講核心功能,插件的使用會在后面的文章中進行部分的講解,感興趣的同學可以先去看一下官方的文檔。

使用第一步:引入POM

首先我們需要引入POM,我在這里引用的是最新版本的:

接著,如果我們需要使用代碼生成器,需要引入模板引擎的依賴:

到此,pom的引入就告一段落,下面我們來看一下配置文件的編寫:

使用第二步:編寫配置文件

這里我們使用的是application.yml作為配置文件,而非新建Spring Boot 項目默認的application.properties,這里如果不會新建一個Spring Boot項目,可以去參考本系列教程的第一篇文章

在這里可以進行打印SQL的配置,便于我們進行排查問題。

使用第三步:建表

使用第四步:使用代碼生成器

直接貼出我的代碼生成器代碼:

public class MpGenerator {
    public static void main(String[] args) {
        GlobalConfig config = new GlobalConfig();
        String dbUrl = "jdbc:mysql://localhost:3306/viboot?useSSL=false";
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL)
                .setUrl(dbUrl)
                .setUsername("root")
                .setPassword("Passw0rd")
                .setDriverName("com.mysql.cj.jdbc.Driver");
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig
                .setCapitalMode(true)
                //這里結合了Lombok,所以設置為true,如果沒有集成Lombok,可以設置為false
                .setEntityLombokModel(true)
                .setNaming(NamingStrategy.underline_to_camel);
        //這里因為我是多模塊項目,所以需要加上子模塊的名稱,以便直接生成到該目錄下,如果是單模塊項目,可以將后面的去掉
        String projectPath = System.getProperty("user.dir") + "/viboot-mybatis-plus";
        // 自定義配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
            }
        };
        // 如果模板引擎是 freemarker
        String templatePath = "/templates/mapper.xml.ftl";
        // 如果模板引擎是 velocity
        // String templatePath = "/templates/mapper.xml.vm";

        // 自定義輸出配置
        List focList = new ArrayList<>();
        // 自定義配置會被優先輸出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定義輸出文件名
                return projectPath + "/src/main/resources/mapper/" + "user"
                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });

        cfg.setFileOutConfigList(focList);

        //設置作者,輸出路徑,是否重寫等屬性
        config.setActiveRecord(false)
                .setEnableCache(false)
                .setAuthor("viyoung")
                .setOutputDir(projectPath + "/src/main/java")
                .setFileOverride(true)
                .setServiceName("%sService");
        new AutoGenerator()
                .setGlobalConfig(config)
                .setDataSource(dataSourceConfig)
                .setStrategy(strategyConfig)
                .setTemplateEngine(new FreemarkerTemplateEngine())
                .setCfg(cfg)
                //這里進行包名的設置
                .setPackageInfo(
                        new PackageConfig()
                                .setParent("indi.viyoung.viboot.mybatis")
                                .setController("controller")
                                .setEntity("entity")
                                .setMapper("mapper")
                                .setServiceImpl("service.impl")
                                .setService("service")
                ).execute();
    }
}

下面我們來運行main方法,就可以看到生成的包:

mapper包下面xml包刪掉,因為我們已經在resources中生成了*mapper.xml文件。
這里需要注意,需要在SpringBoot的啟動類上配置MapperScan來幫助我們去找到持久層接口的位置。

使用第四步:編寫查詢列表進行測試

沒錯,我們只需要寫一行代碼就可以獲取到我們想要的列表,下面我們來訪問一下

IService與BaseMapper

有些人可能會好奇,為什么我們只需要在controller層中直接去調用就可以獲得到列表,這是因為Mybatis-Plus給我們封裝了一系列的CRUD的基礎接口,在通過代碼生成器生成的UserService接口實際上是繼承了IService接口的,而UserServiceImpl則是繼承ServiceImpl,所以就可以獲取到一些基礎的實現。

IService則給我們提供了以下方法來實現基礎的CRUD:

同樣的,BaseMapper接口也提供了一些實現:

通過這些基礎的實現,我們可以完成日常中大部分的基礎查詢,而省去了編寫Service和ServiceImpl的時間,從編碼效率上來講比起JPA更勝一籌。

條件構造器

條件構造器可以構造一些查詢條件來獲取我們指定的值,同時可以結合Lambda表達式來使用,下面我們直接來編寫兩個例子:

可以看到,被注釋掉的部分是不使用Lambda表達式的寫法,這樣的寫法存在魔法值,而且會由于粗心寫錯column的名稱而導致錯誤,但是使用Lambda表達式就足夠直觀的可以看出我們是想查詢出userName = ?的數據,下面,我們來運行一下,看看結果是否符合我們預期的那樣

當然,條件構造器的用法還有許許多多,這里就不在一一羅列,有需要的同學可以去官網查看文檔

分頁查詢

如果我們需要分頁查詢數據去渲染表格,可以使用Mybatis-Plus自帶的分頁插件:

在啟動類中加入上面的代碼,然后我們就可以去使用分頁了:

我們只需要構建一個Page對象,并初始化我們所需的頁數(page)和每頁數據量(pageSize),然后將其作為page()方法的參數傳入即可
下面,我們來訪問一下:

至此,我們的Mybatis-Plus就告一段落了,謝謝您的耐心閱讀,希望您有所收獲~

原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

源碼可以去github(https://github.com/viyog/vibo... 或者碼云(https://gitee.com/yw185300699... )上進行下載,后續的例子都會同步更新。

公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75630.html

相關文章

  • spring-boot 整合mybatis-plus 組成后臺開發基本框架

    摘要:一直想搞一套后臺基本開發框架出來,無奈太忙其實太懶,最近受到兩位大佬的啟發,就改動了一下大佬做好的東西。更新簡單整合使用項目目錄修復修改模板文件的包名問題,之后只在包里文件中的與即可地址 一直想搞一套后臺基本開發框架出來,無奈太忙(其實太懶),最近受到兩位大佬的啟發,就改動了一下大佬做好的東西。初始版本:https://github.com/lihengming... showImg(...

    abson 評論0 收藏0
  • springboot系列】springboot整合獨立模塊Druid + mybatis-plus

    摘要:申請連接時執行檢測連接是否有效,做了這個配置會降低性能。作者在版本中使用,通過監控界面發現有緩存命中率記錄,該應該是支持。允許和不允許單條語句返回多個數據集取決于驅動需求使用列標簽代替列名稱。需要驅動器支持。將自動映射所有復雜的結果。 項目github地址:https://github.com/5-Ason/aso... 具體可看 ./db/db-mysql 模塊 本文主要實現的是對...

    RobinTang 評論0 收藏0
  • SpringBoot整合MybatisPlus的簡單教程(簡單整合

    摘要:最近在研究,順便就會看看數據庫連接這一塊的知識,所以當我發現有通用和這兩款網絡上比較火的簡化開發的優秀軟件之后。先創建一個的項目,可以參考我之前的文章的簡單教程一項目的創建。打開文件,將最新的相關的包都引用進來。 最近在研究springboot,順便就會看看數據庫連接這一塊的知識 ,所以當我發現有通用Mapper和MybatisPlus這兩款網絡上比較火的簡化mybatis開發的優秀軟...

    duan199226 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<