SpringBoot集成MybatisPlus

祝你前程似錦嚼酝,在初春浮还,在夏至,在秋末闽巩,在冬深

一钧舌、前言:

MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL涎跨、存儲過程以及高級映射洼冻。MyBatis-Plus(簡稱 MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎(chǔ)上只做增強不做改變隅很,為簡化開發(fā)撞牢、提高效率而生。

二叔营、集成

在我們項目中屋彪,用到最多的ORM框架就是Mybatis了,但是相對于Mybtais绒尊,我們可以有一個更好的選擇:Mybatis-plus
1畜挥、依賴如下:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1.tmp</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

2、對應(yīng)的數(shù)據(jù)庫表:

CREATE TABLE `tb_user` (
  `id` bigint(20) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3垒酬、application配置

spring.datasource.url=jdbc:mysql:///spring-boot?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=password
logging.level.indi.zhaosheng.mybatis.plus.dao=debug

4砰嘁、數(shù)據(jù)庫表對應(yīng)的對象(這里稱為Po)

@TableName("tb_user")
@Setter
@Getter
public class UserPo {
    private Long id;
    private String name;
}

5件炉、DAO

public interface UserMapper extends BaseMapper<UserPo> {
}

6、Service

public interface UserService {
}
******************************************************************
@Service
public class UserServiceImpl implements UserService {

    private IService<UserPo> userPoService;

    public UserServiceImpl(UserMapper userMapper) {
        this.userPoService = new BaseServiceImpl<>(userMapper, UserPo.class);
    }

}

三矮湘、自定義

我們可以看到斟冕,在上面的Service里,通過構(gòu)造函數(shù)new了一個BaseServiceImpl的userPoService缅阳;在MybatisPlus里磕蛇,普通情況是每個Po都會有個Service繼承ServiceImpl的,這樣去操作ServiceImpl提供的batch方法時十办,就可以獲取到操作的對象的類型秀撇。這里做了一個簡化,即通過泛型構(gòu)造PoService向族。

public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> {

    /**
     * <p>
     * 這里繼承了mp提供的一個ServiceImpl類呵燕,
     * 通過CodeGenerator生成的代碼里,
     * 每個Po(即與數(shù)據(jù)庫表映射的對象)都會生成一個泛型為Po的Service件相,
     * 這個Service的作用是確定ServiceImpl操作的對象類型再扭,
     * 個人感覺沒有必要,可以通過下面的方式指定對象類型夜矗,
     * 不指定的話泛范,batch操作會拋異常(Error: Cannot execute table Method, ClassGenricType not found .),
     * 找不到對應(yīng)的對象類型
     * 使用示例見{@link indi.zhaosheng.mybatis.plus.service.impl.UserServiceImpl#UserServiceImpl(UserMapper)}
     * </p>
     *
     * @param mapper
     * @param clz
     * @return
     * @auther muluo
     */
    public BaseServiceImpl(M mapper, Class<T> clz) {
        this.baseMapper = mapper;
        this.entityClass = clz;
    }
}

好了紊撕,以上就是SpringBoot集成MybatisPlus的全部內(nèi)容了罢荡,很簡單,單可用对扶。涉及到的具體的操作并沒有在這里列出來区赵,因為官網(wǎng)上已經(jīng)有了很多的示例了。準(zhǔn)備下次肝一下MP的具體操作的流程辩稽,梳理清楚里面的邏輯惧笛,以及具體的sql是如何生成的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逞泄,一起剝皮案震驚了整個濱河市患整,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喷众,老刑警劉巖各谚,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異到千,居然都是意外死亡昌渤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門憔四,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膀息,“玉大人般眉,你說我怎么就攤上這事∏敝В” “怎么了甸赃?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冗酿。 經(jīng)常有香客問我埠对,道長,這世上最難降的妖魔是什么裁替? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任项玛,我火速辦了婚禮,結(jié)果婚禮上弱判,老公的妹妹穿的比我還像新娘襟沮。我一直安慰自己,他們只是感情好裕循,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布臣嚣。 她就那樣靜靜地躺著,像睡著了一般剥哑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淹父,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天株婴,我揣著相機與錄音,去河邊找鬼暑认。 笑死困介,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蘸际。 我是一名探鬼主播座哩,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粮彤!你這毒婦竟也來了根穷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤导坟,失蹤者是張志新(化名)和其女友劉穎屿良,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惫周,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡尘惧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了递递。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喷橙。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡啥么,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贰逾,到底是詐尸還是另有隱情饥臂,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布似踱,位于F島的核電站隅熙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏核芽。R本人自食惡果不足惜囚戚,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轧简。 院中可真熱鬧驰坊,春花似錦、人聲如沸哮独。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皮璧。三九已至舟扎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悴务,已是汗流浹背睹限。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讯檐,地道東北人羡疗。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像别洪,于是被迫代替她去往敵國和親叨恨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355