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

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

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

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

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

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 已經自動加載的資源。不手動指定
   * 配置文件和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可以直接調用
例子:

?
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

 

復制代碼 代碼如下:

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當前頁,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注解不然會報錯

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

?
1
mybatisPlus.setDbColumnUnderline(true);

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

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

延伸 · 閱讀

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

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

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

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

    深入理解Spring Cloud Zuul過濾器

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

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

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

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

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

    Spring Boot Actuator監控器配置及使用解析

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

    edda_huang4882020-07-10
  • JAVA教程Java如何實現定時任務

    Java如何實現定時任務

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

    chenssy2202020-07-31
  • JAVA教程Java經典用法總結(二)

    Java經典用法總結(二)

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

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

    解析Java的設計模式編程之解釋器模式的運用

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

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

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

    下面小編就為大家帶來一篇淺談Java后臺對JSON格式的處理操作。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 ...

    jingxian3792020-05-09
主站蜘蛛池模板: 欧美日韩一区二区三区在线视频 | 我的年轻漂亮继坶三级 | 国产一区二区在线观看视频 | 亚洲免费视频播放 | 变态 调教 视频 国产九色 | 热99这里有精品综合久久 | 乌克兰少妇大胆大BBW | 亚洲AV综合99一二三四区 | 91麻豆精品国产自产在线 | 国产成人精品免费久久久久 | 变形金刚第一部 | 国产里番| 日本xxwwwxxxx| swag最新正在播放 | 性欧美f| 国产五月天在线 | 国产精品永久免费自在线观看 | 97国产自拍| 亚洲一级视频在线观看 | 色哟哟在线资源 | 黄 色 大 片 网站 | 青草视频在线观看免费视频 | 日韩欧免费一区二区三区 | 日本sss| 欧美视| 成人人免费夜夜视频观看 | 扒开老师挠尿口到崩溃刑罚 | 亚洲免费视频在线观看 | 青春草在线观看视频 | 18美女光胸光屁屁洗澡 | 第一次处破女18分钟 | 美女被狂干 | 日韩欧美三级视频 | av91在线| 欧美一卡2卡3卡四卡海外精品 | 99久久免费看精品国产一区 | 污黄漫 | 日本www色视频成人免费 | 四虎最新永久免费网址 | 60岁了天天要小伙子 | 滑进了柔佳火热紧夹的 |