登山则情满于山,观海则意溢于海。这篇文章主要讲述最简单的通用Mapper的使用手册不了解一下?相关的知识,希望能为你提供帮助。
目录
- ??通用Mapper的定义??
- ??SpringBoot如何整合通用mapper??
- ??第一步:引入依赖??
- ??第二步:配置逆向工程??
- ??第三步:定义逆向工程的启动类??
- ??第四步 测试逆向工程??
- ??怎么用???
- ??如何调用方法???
- ??方法哪里来的??
- ??Mapper??
- ??BaseMapper接口??
- ??ExampleMapper接口??
- ??RowBoundsMapper接口??
- ??总结??
- ??参考??
- ??源码地址:??
本文下从如下三个方面来介绍:
- SpringBoot如何整合通用mapper
- 如何使用通用Mapper的方法
- 通用方法怎么来的
< !--mapper需要依赖jpa-->
< dependency>
< groupId> org.springframework.boot< /groupId>
< artifactId> spring-boot-starter-data-jpa< /artifactId>
< /dependency>
< !--MyBatis 通用 Mapper-->
< dependency>
< groupId> tk.mybatis< /groupId>
< artifactId> mapper-spring-boot-starter< /artifactId>
< version> 1.1.4< /version>
< /dependency>
< !-- SpringBoot - MyBatis 逆向工程 -->
< dependency>
< groupId> org.mybatis.generator< /groupId>
< artifactId> mybatis-generator-core< /artifactId>
< version> 1.3.2< /version>
< /dependency>
< !-- mysql连接需要的类 -->
< dependency>
< groupId> mysql< /groupId>
< artifactId> mysql-connector-java< /artifactId>
< /dependency>
如上我们需要引入四个依赖一个是jpa依赖,一个是通用Mapper自身的依赖,一个是MyBatis逆向工程需要的依赖,最后就是连接mysql的依赖。依赖引入之后,接下来就是配置逆向工程。(PS:逆向工程就是帮助我们生成Model,Dao以及XML)。
第二步:配置逆向工程
- 首先我们需要在resources目录下新建一个属性文件?
?config.properties?
?用来定义数据库连接,生成类的目标包等信息。定义如下:
#jdbcConnection 连接
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatisdemo?useUnicode=true& characterEncoding=utf8
jdbc.user=root
jdbc.password=admin
#targetProject是包所在的位置
#mac 下
targetProject=/Volumes/Develop/WorkSpace/auto_java/auto-mapper-demo/src/main/
#model的目标包名
modelTargetPackage=com.jay.model
#dao的目标包名
daoTargetPackage=com.jay.mapper
- 前面我们新建的属性文件其实是给后面的XML文件用的,接下来我们就来看看XML文件?
?generatorConfig.xml?
?吧。
< !DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
< generatorConfiguration>
< !--引入属性文件-->
< properties resource="config.properties"/>
< context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
< property name="beginningDelimiter" value="https://www.songbingjia.com/android/`"/>
< property name="endingDelimiter" value="https://www.songbingjia.com/android/`"/>
< !--配置生成类的插件-->
< plugin type="tk.mybatis.mapper.generator.MapperPlugin">
< property name="mappers" value="https://www.songbingjia.com/android/tk.mybatis.mapper.common.Mapper"/>
< property name="caseSensitive" value="https://www.songbingjia.com/android/true"/>
< /plugin>
< !--连接数据库-->
< jdbcConnection driverClass="$jdbc.driverClass"
connectionURL="$jdbc.url"
userId="$jdbc.user"
password="$jdbc.password">
< /jdbcConnection>
< !--指定model的生成路径-->
< javaModelGenerator targetPackage="$modelTargetPackage"
targetProject="$targetProject/java"/>
< !--指定mapper的生成路径-->
< sqlMapGenerator targetPackage="mapper"
targetProject="$targetProject/resources"/>
< !--指定dao的生成路径-->
< javaClientGenerator targetPackage="$daoTargetPackage"
targetProject="$targetProject/java"
type="XMLMAPPER"/>
< !--指定需要生成Model,Dao,Xml的数据表-->
< table tableName="classroom"> < /table>
< /context>
< /generatorConfiguration>
需要注意的是定义的属性名要与属性文件中的一致,比如jdbc.driverClass
第三步:定义逆向工程的启动类
将相关的必要的配置弄好之后,接下来我们就来定义逆向工程的启动类。这个启动类的代码也相对比较简单,代码如下所示:
public class Generator
public static InputStream getResourceAsStream(String path)
return Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
public static void main(String[] args) throws Exception
List< String> warnings = new ArrayList< String> ();
boolean overwrite = true;
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(getResourceAsStream("generatorConfig.xml"));
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
for (String warning : warnings)
System.out.println(warning);
第四步 测试逆向工程
准备工作都做好之后,接下来,我们就来测试生成model,dao,XML等文件吧。我们直接运行Generator类正常的话就可以得到生成的Model,Dao和XML,生成结果如下图所示:
怎么用? 如何调用方法?
【最简单的通用Mapper的使用手册不了解一下()】说完了逆向工程,生成了我们需要的Dao类之后,接下来我们就要看看怎么使用了Dao类,调用其拥有的通用方法,其实调用也相当简单。下面我先给出一个调用示例:
我们定义了一个??
?ClassroomServiceImpl?
??业务类,并且实现了三个方法,分别是调用??insert?
??方法保存班级,调用??selectByPrimaryKey?
??方法根据主键查找班级,调用??select?
?方法根据班级名称查找班级。这些方法都是ClassroomMapper接口中自带的方法。@Service
public class ClassroomServiceImpl implements ClassroomService
@Autowired
private ClassroomMapper classroomMapper;
//保存班级
@Override
public boolean saveClassroom(Classroom classroom)
int result推荐阅读
- 多线程基本概念(并发与并行线程与进程)和入门案例
- Veeam Backup Configuration Tool
- Harbor 2.5.1新版发布,赶紧升级尝尝鲜
- Java使用FreeMarker模版技术动态生成word实践
- 优维低代码(构件事件传递)
- 同驱动编译相关的三类文件(MakefileConfig和Kconfig)
- 资金穿透分析
- 逆向调试入门-OllyDbg的使用
- 漫画趣解大数据算法建模(买瓜)