最简单的通用Mapper的使用手册不了解一下?

Posted 飞飞1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最简单的通用Mapper的使用手册不了解一下?相关的知识,希望对你有一定的参考价值。


目录

通用Mapper的定义

通用Mapper 是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。开发人员可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法,极其方便的使用MyBatis单表的增删改查。
本文下从如下三个方面来介绍:

  1. SpringBoot如何整合通用mapper
  2. 如何使用通用Mapper的方法
  3. 通用方法怎么来的

SpringBoot如何整合通用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)。

第二步:配置逆向工程

  1. 首先我们需要在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
  1. 前面我们新建的属性文件其实是给后面的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="`"/>
<property name="endingDelimiter" value="`"/>

<!--配置生成类的插件-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="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的使用手册不了解一下?_xml

怎么用?

如何调用方法?

说完了逆向工程,生成了我们需要的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 以上是关于最简单的通用Mapper的使用手册不了解一下?的主要内容,如果未能解决你的问题,请参考以下文章

通用mapper的使用+简单的条件+分页查询

通用Mapper简单使用

Mybatis通用Mapper(转)

Mybatis通用Mapper

Mybatis通用Mapper

通用 mapper的简单使用