您好,登錄后才能下訂單哦!
這篇文章主要介紹“Mybatis Plus的基礎使用方法”,在日常操作中,相信很多人在Mybatis Plus的基礎使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Mybatis Plus的基礎使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Mybatis-Plus 是一款 Mybatis 動態(tài) SQL 自動注入 Mybatis 增刪改查 CRUD 操作中間件, 減少你的開發(fā)周期優(yōu)化動態(tài)維護 XML 實體字段,無入侵全方位 ORM 輔助層讓您擁有更多時間陪家人。
以下內(nèi)容 以Mybatis-Plus 3.0.1版本 為藍本;
詳情見官方文檔:
https://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A7
pom引入所需jar包
<!-- mybatisPlus 核心庫 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.1.0</version> </dependency> <!-- mybatis 代碼自動生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.1.0</version> </dependency> <!--mybatis-plus完成項目構(gòu)建所需模板,真實項目不需要使用--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency>
配置自動生成工具類
package org.xx.xx.db.util; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.ArrayList; import java.util.List; /** * @Description: * @Auther: wuxw * @Date: 2019/9/30 14:27 */ public class CodeGeneratorUtil { public static void main(String[] args) { //代碼生成器 AutoGenerator mpg = new AutoGenerator(); //全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir") + "/litemall-db/"; gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("wuxw"); gc.setServiceName("%sService");//自定義Service接口生成的文件名 gc.setOpen(false); gc.setBaseResultMap(true); gc.setDateType(DateType.ONLY_DATE); mpg.setGlobalConfig(gc); //數(shù)據(jù)源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://127.0.0.1:3306/litemall?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("123456"); mpg.setDataSource(dsc); //包配置 PackageConfig pc = new PackageConfig(); pc.setParent("org.xxx.xxx.db") .setMapper("dao"); mpg.setPackageInfo(pc); //自定義配置 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { //to do nothing } }; //自定義輸出配置 List<FileOutConfig> focList = new ArrayList<>(); //自定義配置會優(yōu)先輸出 focList.add(new FileOutConfig("/templates/mapper.xml.ftl") { @Override public String outputFile(TableInfo tableInfo) { // 自定義輸出文件名 , 如果你 Entity 設置了前后綴、此處注意 xml 的名稱會跟著發(fā)生變化!! return projectPath + "/src/main/resources/mappers/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; } }); cfg.setFileOutConfigList(focList); mpg.setCfg(cfg); // 配置模板 TemplateConfig templateConfig = new TemplateConfig(); // 配置自定義輸出模板 //指定自定義模板路徑,注意不要帶上.ftl/.vm, 會根據(jù)使用的模板引擎自動識別 // templateConfig.setEntity("templates/entity2.java"); // templateConfig.setService(); // templateConfig.setController(); templateConfig.setXml(null); mpg.setTemplate(templateConfig); //配置策略 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); //strategy.setSuperControllerClass("com.example.demo.model.BaseEntity"); strategy.setEntityLombokModel(false);//默認是false //strategy.setRestControllerStyle(true); //公共父類 //strategy.setSuperControllerClass("com.example.demo.controller.BaseController"); // 寫于父類中的公共字段 //strategy.setSuperEntityColumns("id"); strategy.setInclude("tb_forum_replay"); // 僅生成單個表 strategy.setControllerMappingHyphenStyle(true); strategy.setTablePrefix("tb_"); mpg.setStrategy(strategy); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); System.out.println(" --------------------------自動生成完畢------------------------"); } }
實際開發(fā)
@Api(tags = "論壇主頁") @RestController @RequestMapping("/admin/forum/") @Validated public class AdminForumController { } @Service public class ForumServiceImpl extends ServiceImpl<ForumMapper, Forum> implements ForumService { } @Mapper public interface ForumMapper extends BaseMapper<Forum> { } @Data @TableName("tb_forum") public class Forum implements Serializable { }
QueryWrapper qw = new QueryWrapper(); qw.eq("user_id",userId); qw.eq("readed",0); baseMapper.selectCount(qw);
等同于
select count(*) from tb where use_id = #{userId} and readed =0
QueryWrapper qw = new QueryWrapper(); qw.eq("user_id",userId); qw.eq("readed",0); qw.last("limit 1"); baseMapper.selectOne(qw);
等同于
select count(*) from tb where use_id = #{userId} and readed =0 limit 1
UpdateWrapper uw = new UpdateWrapper(); uw.eq("user_id",userId); uw.eq("id",id); Forum f = new Forum(); f.setDeleted(1); return forumMapper.update(f,uw) > 0;
等同于
update forum set delete =1 where user_id = #{userId} and id = #{id}
UpdateWrapper uw = new UpdateWrapper(); String[] idsStr =new String["1","2","3"]; String id = StringUtils.strip(idsStr.toString(),"[]"); uw.inSql("id",id); Forum f = new Forum(); f.setDeleted(1); return forumMapper.update(f,uw) > 0;
等同于
update forum set deleted = 1 where id in ( 1 , 2 ,3)
太太太哪里, 具體還是看官方文檔吧
各種sql語義,讓你用mybatisPlus 溜的飛起
最最最主要的還是
Java 與 XML 調(diào)回跳轉(zhuǎn)
Mapper 方法自動生成 XML
到此,關于“Mybatis Plus的基礎使用方法”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。