时间:2021-05-20
一、简介
Mybatis-Plus是一款 MyBatis 动态 sql 自动注入 crud 简化 增 删 改 查 操作中间件。启动加载 XML 配置时注入 mybatis 单表 动态 SQL 操作 ,为简化开发工作、提高生产率而生。Mybatis-Plus 启动注入非拦截实现、性能更优。
1.1、原理
1.2、特性
1.3、简化
MP简化了MyBatis的单表基本操作,提供了两种操作方式:
(1)、传统模式
Mybatis-Plus 通过 EntityWrapper(简称 EW,MP 封装的一个查询条件构造器)或者 Condition(与EW类似) 来让用户自由的构建查询条件,简单便捷,没有额外的负担,能够有效提高开发效率。
(2)、ActiveRecord模式
Active Record(简称AR)模式是软件里的一种架构性模式,主要概念是关系型数据库中的数据在内存中以对象的形式存储。由Martin Fowler在其2003年初版的书籍《Patterns of Enterprise Application Architecture》命名。遵循该模式的对象接口一般包括如Insert, Update, 和 Delete这样的函数,以及对应于底层数据库表字段的相关属性。
AR模式是一种访问数据库数据的方式。数据表或视图被映射成一个类。每个对象实例则对应于表的一条记录。对象被创建后,通过save就可以向表中新添一行记录。当对象被更新时,表中相应记录也被更新。这个包裹类通过属性或方法的形式实现访问表或视图中的每一个字段。
该模式主要被对象持久化工具采用,用于对象关系映射 (ORM). 典型的,外键关系会以合适的对象实例属性的形式暴露访问。
1.4、常用实体注解
1.表名注解@TableName
2.主键注解@TableId
3.字段注解@TableFieId
4.序列主键策略注解@KeySequence
二、搭建
环境:
IDEA
Spring Boot-2.0
MyBatis-Plus-2.2.0
MyBatisPlus-spring-boot-starter-1.0.5
druid-spring-boot-starter-1.1.9
首先创建SpringBoot Maven项目,然后加入以下依赖:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://mon.base.controller.BaseController"); // 【实体】是否生成字段常量(默认 false) // public static final String ID = "test_id"; // strategyConfig.setEntityColumnConstant(true); // 【实体】是否为构建者模型(默认 false) // public User setName(String name) {this.name = name; return this;} // strategyConfig.setEntityBuliderModel(true); config.setActiveRecord(true) //是否 开启 ActiveRecord 模式 .setAuthor("fendo") .setOutputDir("d:\\codeGen") .setFileOverride(true) .setActiveRecord(true) .setEnableCache(false)// XML 二级缓存 .setBaseResultMap(true)// XML ResultMap .setBaseColumnList(false);// XML columList if (!serviceNameStartWithI) { config.setServiceName("%sService"); //自定义Service后戳,注意 %s 会自动填充表实体属性! } // 注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { Map<String, Object> map = new HashMap<String, Object>(); map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp"); this.setMap(map); } }; // 自定义 xxList.jsp 生成 List<FileOutConfig> focList = new ArrayList<FileOutConfig>(); //focList.add(new FileOutConfig("/template/list.jsp.vm") { // @Override // public String outputFile(TableInfo tableInfo) { // // 自定义输入文件名称 // return "D://my_" + tableInfo.getEntityName() + ".jsp"; // } //}); //cfg.setFileOutConfigList(focList); //mpg.setCfg(cfg); // 调整 xml 生成目录演示 focList.add(new FileOutConfig("/templates/mapper.xml.vm") { @Override public String outputFile(TableInfo tableInfo) { return "d:\\codeGen/resources/mapping/modules/yun/" + tableInfo.getEntityName() + ".xml"; } }); cfg.setFileOutConfigList(focList); mpg.setCfg(cfg); // 关闭默认 xml 生成,调整生成 至 根目录 TemplateConfig tc = new TemplateConfig(); tc.setXml(null); mpg.setTemplate(tc); // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改, // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称 // TemplateConfig tc = new TemplateConfig(); // tc.setController("..."); // tc.setEntity("..."); // tc.setMapper("..."); // tc.setXml("..."); // tc.setService("..."); // tc.setServiceImpl("..."); // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。 // mpg.setTemplate(tc); //生成文件 配置 mpg.setGlobalConfig(config) //全局 相关配置 .setDataSource(dataSourceConfig) //数据源配置 .setStrategy(strategyConfig) //数据库表配置 .setPackageInfo( //包 相关配置 new PackageConfig() //跟包相关的配置项 .setParent(packageName) //父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名 .setController("controller") //Controller包名 .setEntity("entity") //entity包名 //.setXml("/") ) .execute(); } private void generateByTables(String packageName, String... tableNames) { generateByTables(true, packageName, tableNames); } }Spring Boot 整合mybatis 与 swagger2
到此这篇关于MyBatis-Plus集成Druid环境搭建的详细教程的文章就介绍到这了,更多相关MyBatis-Plus环境搭建内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
搭建MyBatis-Plus框架并进行数据库添加MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为
已有的springcloud+mybatis项目升级为mybatis-plus项目模块目录将mybatis依赖替换为mybatis-plus修改配置文件实体类如
mybatis-plus版本不兼容问题1,mybatis-plus版本中存在一个问题。2,mybatis-plus-extension版本为v3.2.1.1-S
springboot+mybatis-plus实现内置的CRUD使用详情,具体修改删除操作内容后文也有详细说明mybatis-plus的特性无侵入:只做增强不做
Mybatis-Plus的配置1.Maven插件velocity-engine-core是mybatis-plus自动生成代码所依赖的模板(不用自动生成代码功能