国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Mybatis-Plus 搭建與使用入門(小結(jié))

Mybatis-Plus 搭建與使用入門(小結(jié))

2021-05-07 13:28殷天文 Java教程

Mybatis-Plus(簡稱MP)是一個 Mybatis 的增強工具,這篇文章主要介紹了Mybatis-Plus 搭建與使用入門(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

mybatis-plus(簡稱mp)是一個 mybatis 的增強工具,在 mybatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。

中文文檔 :http://baomidou.oschina.io/mybatis-plus-doc/#/

本文介紹包括

1)如何搭建
2)代碼生成(controller、service、mapper、xml)
3)單表的crud、條件查詢、分頁 基類已經(jīng)為你做好了

一、如何搭建

1. 首先我們創(chuàng)建一個 springboot 工程 --> https://start.spring.io/

Mybatis-Plus 搭建與使用入門(小結(jié))

2. maven 依賴

?
1
2
3
4
5
6
7
8
9
10
11
<dependency>
 <groupid>com.baomidou</groupid>
 <artifactid>mybatis-plus-boot-starter</artifactid>
 <version>2.3</version>
</dependency>
<!-- velocity 依賴,用于代碼生成 -->
<dependency>
 <groupid>org.apache.velocity</groupid>
 <artifactid>velocity-engine-core</artifactid>
 <version>2.0</version>
</dependency>

3. 配置(因為感覺太啰嗦,這里省略了數(shù)據(jù)源的配置)

application.properties

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mybatis-plus.mapper-locations=classpath:/mapper/*mapper.xml
mybatis-plus.typealiasespackage=com.taven.web.springbootmp.entity
mybatis-plus.global-config.id-type=3
mybatis-plus.global-config.field-strategy=2
mybatis-plus.global-config.db-column-underline=true
mybatis-plus.global-config.key-generator=com.baomidou.mybatisplus.incrementer.oraclekeygenerator
mybatis-plus.global-config.logic-delete-value=1
mybatis-plus.global-config.logic-not-delete-value=0
mybatis-plus.global-config.sql-injector=com.baomidou.mybatisplus.mapper.logicsqlinjector
#這里需要改成你的類
mybatis-plus.global-config.meta-object-handler=com.taven.web.springbootmp.mymetaobjecthandler
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.configuration.cache-enabled=false
mybatis-plus.configuration.jdbc-type-for-null=null

配置類 mybatisplusconfig

?
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
import org.mybatis.spring.annotation.mapperscan;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
 
import com.baomidou.mybatisplus.incrementer.h2keygenerator;
import com.baomidou.mybatisplus.incrementer.ikeygenerator;
import com.baomidou.mybatisplus.mapper.isqlinjector;
import com.baomidou.mybatisplus.mapper.logicsqlinjector;
import com.baomidou.mybatisplus.mapper.metaobjecthandler;
import com.baomidou.mybatisplus.plugins.paginationinterceptor;
import com.baomidou.mybatisplus.plugins.performanceinterceptor;
import com.taven.web.springbootmp.mymetaobjecthandler;
 
@enabletransactionmanagement
@configuration
@mapperscan("com.taven.web.springbootmp.mapper")
public class mybatisplusconfig {
 /**
  * mybatis-plus sql執(zhí)行效率插件【生產(chǎn)環(huán)境可以關(guān)閉】
  */
 @bean
 public performanceinterceptor performanceinterceptor() {
  return new performanceinterceptor();
 }
 
 /*
  * 分頁插件,自動識別數(shù)據(jù)庫類型 多租戶,請參考官網(wǎng)【插件擴展】
  */
 @bean
 public paginationinterceptor paginationinterceptor() {
  return new paginationinterceptor();
 }
 
 @bean
 public metaobjecthandler metaobjecthandler() {
  return new mymetaobjecthandler();
 }
 
 /**
  * 注入主鍵生成器
  */
 @bean
 public ikeygenerator keygenerator() {
  return new h2keygenerator();
 }
 
 /**
  * 注入sql注入器
  */
 @bean
 public isqlinjector sqlinjector() {
  return new logicsqlinjector();
 }
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import com.baomidou.mybatisplus.mapper.metaobjecthandler;
import org.apache.ibatis.reflection.metaobject;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
 
/**
 * 注入公共字段自動填充,任選注入方式即可
 */
//@component
public class mymetaobjecthandler extends metaobjecthandler {
 
 protected final static logger logger = loggerfactory.getlogger(application.class);
 
 @override
 public void insertfill(metaobject metaobject) {
  logger.info("新增的時候干點不可描述的事情");
 }
 
 @override
 public void updatefill(metaobject metaobject) {
  logger.info("更新的時候干點不可描述的事情");
 }
}

二、代碼生成

執(zhí)行 junit 即可生成controller、service接口及實現(xiàn)、mapper及xml

?
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
62
63
64
65
66
import org.junit.test;
 
import com.baomidou.mybatisplus.generator.autogenerator;
import com.baomidou.mybatisplus.generator.config.datasourceconfig;
import com.baomidou.mybatisplus.generator.config.globalconfig;
import com.baomidou.mybatisplus.generator.config.packageconfig;
import com.baomidou.mybatisplus.generator.config.strategyconfig;
import com.baomidou.mybatisplus.generator.config.rules.dbtype;
import com.baomidou.mybatisplus.generator.config.rules.namingstrategy;
 
/**
 * <p>
 * 測試生成代碼
 * </p>
 *
 * @author k神
 * @date 2017/12/18
 */
public class generatorserviceentity {
 
 @test
 public void generatecode() {
  string packagename = "com.taven.web.springbootmp";
  boolean servicenamestartwithi = false;//user -> userservice, 設(shè)置成true: user -> iuserservice
  generatebytables(servicenamestartwithi, packagename, "cable", "station");//修改為你的表名
 }
 
 private void generatebytables(boolean servicenamestartwithi, string packagename, string... tablenames) {
  globalconfig config = new 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);//修改替換成你需要的表名,多個表名傳數(shù)組
  config.setactiverecord(false)
    .setenablecache(false)
    .setauthor("殷天文")
    .setoutputdir("e:\\dev\\stsdev\\spring-boot-mp\\src\\main\\java")
    .setfileoverride(true);
  if (!servicenamestartwithi) {
   config.setservicename("%sservice");
  }
  new autogenerator().setglobalconfig(config)
    .setdatasource(datasourceconfig)
    .setstrategy(strategyconfig)
    .setpackageinfo(
      new packageconfig()
        .setparent(packagename)
        .setcontroller("controller")
        .setentity("entity")
    ).execute();
 }
 
// private void generatebytables(string packagename, string... tablenames) {
//  generatebytables(true, packagename, tablenames);
// }
}

到這一步搭建已經(jīng)基本完成了,下面就可以開始使用了!

三、使用 mybatis-plus

首先我們執(zhí)行 上面的 generatecode() 會為我們基于 表結(jié)構(gòu) 生成以下代碼(xml是我手動移到下面的),service 和 mapper 已經(jīng)繼承了基類,為我們封裝了很多方法,下面看幾個簡單的例子。

Mybatis-Plus 搭建與使用入門(小結(jié))

?
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author 殷天文
 * @since 2018-05-31
 */
@controller
@requestmapping("/cable")
public class cablecontroller {
 
 @autowired private cableservice cableservice;
 
 /**
  * list 查詢測試
  *
  */
 @requestmapping("/1")
 @responsebody
 public object test1() {
  // 構(gòu)造實體對應(yīng)的 entitywrapper 對象,進行過濾查詢
  entitywrapper<cable> ew = new entitywrapper<>();
  ew.where("type={0}", 1)
    .like("name", "王")
    .and("core_number={0}", 24)
    .and("is_delete=0");
  list<cable> list = cableservice.selectlist(ew);
  list<map<string, object>> maps = cableservice.selectmaps(ew);
  system.out.println(list);
  system.out.println(maps);
  return "ok";
 }
 
 /**
  * 分頁 查詢測試
  */
 @requestmapping("/2")
 @responsebody
 public object test2() {
  // 構(gòu)造實體對應(yīng)的 entitywrapper 對象,進行過濾查詢
  entitywrapper<cable> ew = new entitywrapper<>();
  ew.where("type={0}", 1)
//    .like("name", "王")
    .and("core_number={0}", 24)
    .and("is_delete=0");
  page<cable> page = new page<>(1,10);
  page<cable> pagerst = cableservice.selectpage(page, ew);
  return pagerst;
 }
 
 /**
  * 自定義查詢字段
  */
 @requestmapping("/3")
 @responsebody
 public object test3() {
  object vl = null;
  // 構(gòu)造實體對應(yīng)的 entitywrapper 對象,進行過濾查詢
  entitywrapper<cable> ew = new entitywrapper<>();
  ew.setsqlselect("id, `name`, "
    + "case type\n" +
    "when 1 then '220kv'\n" +
    "end typename")
    .where("type={0}", 1)
//    .like("name", "王")
    .where(false, "voltage_level=#{0}", vl);//當vl 為空時,不拼接
  page<cable> page = new page<>(1,10);
  page<cable> pagerst = cableservice.selectpage(page, ew);
  return pagerst;
 }
 
 /**
  * insert
  */
 @requestmapping("/4")
 @responsebody
 public object test4() {
  cable c = new cable();
  c.setname("測試光纜");
  cableservice.insert(c);
  return "ok";
 }
 
 /**
  * update
  */
 @requestmapping("/5")
 @responsebody
 public object test5() {
  cable c = cableservice.selectbyid(22284l);
  c.setname("測試光纜2222");
  c.settype(1);
  cableservice.updatebyid(c);
  return "ok";
 }
}

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

原文鏈接:https://www.jianshu.com/p/8fbd22c3e981

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美另类久久 | 一区欧美 | 国产精品成人一区二区三区夜夜夜 | 亚洲人人看 | 都市激情av | а√天堂资源中文最新版地址 | 国产一区二区黑人欧美xxxx | 日韩在线成人 | 国产成人在线一区二区 | 蜜桃视频成人在线观看 | 精品一区在线 | 美女一区二区三区 | 不用播放器的毛片 | 最新一级毛片 | 成人免费视频网址 | 欧美福利一区二区 | 亚洲视频一区在线播放 | 久久丁香 | 中字精品 | 欧美日韩精品一区二区在线观看 | 国产精品成人一区二区三区夜夜夜 | 日本亚洲最大的色成网站www | 在线 欧美 日韩 | 亚洲欧美在线一区 | 99精品视频在线免费观看 | 我要看日本黄色小视频 | 久久久成人精品 | 日韩一级电影在线 | 中文字幕专区 | 国产精品久久久久久久久久妞妞 | 在线视频一区二区 | 亚洲黄色激情 | 免费av观看 | 色接久久 | 成人深夜福利 | 日韩免费观看视频 | 久久久精品网站 | 在线一二三区 | 日韩资源 | 欧美一级片在线观看 | 91精品国产乱码久久久久久 |