一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達式|C/C++|

服務(wù)器之家 - 編程語言 - JAVA教程 - 詳解Spring boot上配置與使用mybatis plus

詳解Spring boot上配置與使用mybatis plus

2020-10-23 20:44junzibuqi124 JAVA教程

這篇文章主要介紹了詳解Spring boot上配置與使用mybatis plus,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b這個是mybatisplus的官方文檔,上面是mybtisplus的配置使用方法,以及一些功能的介紹

下面開始配置

maven依賴

?
1
2
3
4
5
6
7
8
9
10
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.1.1</version>
</dependency>
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus</artifactId>
  <version>2.0-beta</version>
</dependency>

config文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
@Configuration
public class MybatisPlusConfig {
  @Autowired
  private DataSource dataSource;
 
  @Autowired
  private MybatisProperties properties;
 
  @Autowired
  private ResourceLoader resourceLoader = new DefaultResourceLoader();
 
  @Autowired(required = false)
  private Interceptor[] interceptors;
 
  @Autowired(required = false)
  private DatabaseIdProvider databaseIdProvider;
 
  /**
   *  mybatis-plus分頁插件
   */
  @Bean
  public PaginationInterceptor paginationInterceptor() {
    PaginationInterceptor page = new PaginationInterceptor();
    page.setDialectType("mysql");
    return page;
  }
  /**
   * 這里全部使用mybatis-autoconfigure 已經(jīng)自動加載的資源。不手動指定
   * 配置文件和mybatis-boot的配置文件同步
   * @return
   */
  @Bean
  public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() {
    MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
    mybatisPlus.setDataSource(dataSource);
    mybatisPlus.setVfs(SpringBootVFS.class);
    if (StringUtils.hasText(this.properties.getConfigLocation())) {
      mybatisPlus.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));
    }
    mybatisPlus.setConfiguration(properties.getConfiguration());
    if (!ObjectUtils.isEmpty(this.interceptors)) {
      mybatisPlus.setPlugins(this.interceptors);
    }
    MybatisConfiguration mc = new MybatisConfiguration();
    mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
    mybatisPlus.setConfiguration(mc);
    if (this.databaseIdProvider != null) {
      mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider);
    }
    if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
      mybatisPlus.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
    }
    if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
      mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
    }
    if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
      mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations());
    }
    return mybatisPlus;
  }
}

插件以@bean的形式添加在config文件里例如:

?
1
2
3
4
5
6
@Bean
  public PaginationInterceptor paginationInterceptor() {
    PaginationInterceptor page = new PaginationInterceptor();
    page.setDialectType("mysql");
    return page;
  }

這是一個分頁插件。

代碼生成器參考官方文檔,但是他的代碼生成器可供修改的地方不多,只能控制一下代碼生成路徑之類的,自由度不高,推薦把mybatisplus 代碼生成部分單獨抽出來,修改成自己合適的,再打成jar包進行依賴。

springboot properties文件配置

?
1
2
3
# mybatis_config
mybatis.mapper-locations=classpath:com/boot/mapper/xml/*Mapper.xml
mybatis.typeAliasesPackage=com.boot.entity

前一個是xml文件的路徑

后面一個時別名包路徑

在springboot的啟動類上加上注解

?
1
2
3
@MapperScan("com.boot.mapper*")
@SpringBootApplication
public class BootApplication {

@mapperscan 里面是dao的掃描路徑

mybatisplus 提供了比較齊全的crud即增刪改查,不需要在mapper.xml里寫sql可以直接調(diào)用
例子:

?
1
2
3
4
5
6
7
8
//可以在controller:
Egg egg = new Egg();
eggService.insert(egg);
//可以在service
Egg egg = new Egg();
this.selectList(new EntityWrapper<Egg >(egg));//mybatisplus提供依靠實體查詢的方法的寫法
//也可以
mapper.selectList(new EntityWrapper<Egg >(egg));

分頁查詢demo:

dao:返回list

 

復(fù)制代碼 代碼如下:

List<Role> getPage(Pagination page, RoleParam param) throws DataAccessException;

 

xml:照著普通sql寫就可以了,其他的會自動拼接

?
1
2
3
4
5
6
<select id="getPage" resultMap="RoleResultMap">
  select
  <include refid="columns"/>
  from ella_role
  <include refid="where"/>
 </select>

service:

?
1
2
3
4
5
6
public Page<EllaRole> getPage(RoleParam param) {
//new 一個page 初始化傳入current當(dāng)前頁,size每頁幾個,order 排序(默認asc要改的話page.setAsc(false);)
    Page<Role> page = new Page<Role>(param.getCurrent(), param.getSize(), param.getOrder());
    page.setRecords(iRoleMapper.getPage(page, param));
    return page;
  }

end

接下來是一些小貼士

生成的實體里主鍵要加上@TableId注解不然會報錯

數(shù)據(jù)庫里有下劃線的字段在查詢返回是會取不到值,需要在config文件中的mybatisSqlSessionFactoryBean方法下加上

?
1
mybatisPlus.setDbColumnUnderline(true);

domain里的所有屬性都會映射到數(shù)據(jù)庫的字段上,如果你加上數(shù)據(jù)庫里沒有但要用的屬性需要在上面加上@TableField(exist = false)標(biāo)簽,這樣他會被忽略

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/u014519194/article/details/53786630

延伸 · 閱讀

精彩推薦
  • JAVA教程微信公眾帳號開發(fā)教程之圖文消息全攻略

    微信公眾帳號開發(fā)教程之圖文消息全攻略

    本篇主要介紹微信公眾帳號開發(fā)中圖文消息的使用,以及圖文消息的幾種表現(xiàn)形式。標(biāo)題取名為"圖文消息全攻略",這絕對不是標(biāo)題黨,是想借此機會把大...

    柳峰的專欄3492020-07-14
  • JAVA教程深入理解Spring Cloud Zuul過濾器

    深入理解Spring Cloud Zuul過濾器

    這篇文章主要給大家介紹了關(guān)于Spring Cloud Zuul過濾器的相關(guān)資料,通過閱讀本文您將了解:Zuul過濾器類型與請求生命周期、如何編寫Zuul過濾器、如何禁用Z...

    周立4472020-08-20
  • JAVA教程eclipse怎么引入spring boot項目插件的方法

    eclipse怎么引入spring boot項目插件的方法

    這篇文章主要介紹了eclipse怎么引入spring boot項目插件的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的...

    莫采4432019-07-08
  • JAVA教程Spring Boot Actuator監(jiān)控器配置及使用解析

    Spring Boot Actuator監(jiān)控器配置及使用解析

    這篇文章主要介紹了Spring Boot Actuator監(jiān)控器配置及使用解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友...

    edda_huang4882020-07-10
  • JAVA教程Java如何實現(xiàn)定時任務(wù)

    Java如何實現(xiàn)定時任務(wù)

    這篇文章主要介紹了Java如何實現(xiàn)定時任務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小...

    chenssy2202020-07-31
  • JAVA教程Java經(jīng)典用法總結(jié)(二)

    Java經(jīng)典用法總結(jié)(二)

    這篇文章主要介紹了Java經(jīng)典用法總結(jié),在本文中,盡量收集一些java最常用的習(xí)慣用法,特別是很難猜到的用法,本文重點講解了java應(yīng)用和輸入輸出常用方...

    lijiao3442020-03-28
  • JAVA教程解析Java的設(shè)計模式編程之解釋器模式的運用

    解析Java的設(shè)計模式編程之解釋器模式的運用

    這篇文章主要介紹了解析Java的設(shè)計模式編程之解釋器模式的運用,文中對解釋器模式的優(yōu)缺點及適用場景作出了分析,需要的朋友可以參考下 ...

    卡奴達摩2492020-04-01
  • JAVA教程淺談Java后臺對JSON格式的處理操作

    淺談Java后臺對JSON格式的處理操作

    下面小編就為大家?guī)硪黄獪\談Java后臺對JSON格式的處理操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 ...

    jingxian3792020-05-09
主站蜘蛛池模板: 久久re热在线视频精69 | 色婷婷综合久久久中文字幕 | 国产经典一区二区三区蜜芽 | www亚洲色图| 欧美一级在线视频 | 亚洲伦理天堂 | 91高清国产视频 | 午夜爱爱爱爱爽爽爽视频网站 | 91理论片午午伦夜理片久久 | 亚洲乱码尤物193yw在线播放 | 亚洲精品久久久WWW游戏好玩 | 亚洲一级片在线播放 | 亚洲精品中文字幕在线 | 男同巨黄gay小说好爽 | 美女被草出水 | 爽新片xxxxxxx| 亚洲国产精品久久丫 | 手机看片国产免费久久网 | 87影院在线观看视频在线观看 | 无人区乱码1区2区3区网站 | 精品久久久久久久久免费影院 | 日本片免费观看一区二区 | 很黄的网站在线观看 | 亚洲另类中文字幕 | lubuntu网页版在线 | 51精品| 亚洲欧美一区二区久久 | 亚洲午夜精品久久久久久抢 | 婷婷色六月 | 日韩免费视频播播 | 成年人在线播放视频 | 国产精品猎奇系列在线观看 | 性妲己| 国产精品特黄毛片 | 国产天天在线 | 18日本人 | 亚洲国产精品久久久久 | 视频一区在线免费观看 | 成年人在线免费看 | 成人伊在线影院 | 天天色综合三 |