现在大部分项目的持久层都是采用的mybatis框架,,而mybatis框架有几个特别好用的插件。。他们分别是mybatis-generator
pagehelper和mapper。其中,mybatis-generator在springboot中不需要什么特殊的配置,所以这里不讲了。我们主要讲pagehelper和mapper。。
先给下官方地址:
pagehelper: https://github.com/pagehelper/Mybatis-PageHelper
mapper: https://github.com/abel533/Mapper
pagehelper是一款mybatis官方推荐的分页插件,,这个插件基本上可以满足绝大多数项目对于分页的需求,而且使用简单。
mapper是一款基本上你不要任何代码,就可以对单表进行增删改查的插件。。官方是这样说的。。
通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。 极其方便的使用MyBatis单表的增删改查。 支持单表操作,不支持通用的多表联合查询。
这里我们先说pagehelper,在SSM整合的框架里,引入pagehelper的jar包之后,还需要在mybatis的配置文件中配置pagehelper为mybatis的插件,并设置参数。
如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!--是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!--分页参数合理化 --> <property name="reasonable" value="true"/> </plugin> </plugins> </configuration>然而在springboot的项目中,则无需如此。因为springboot舍弃了xml,我们不需要再像以前那样写很多xml配置文件了。。
这里我们先引入pagehelper与springboot的整合包
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.1</version> </dependency>
然后再springboot的配置文件application.properties中可以对pagehelper进行一些参数的配置
pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql只需要这两个很简单的步骤,pagehelper就已经集成到了你的springboot项目中了。。真的很方便。。
springboot集成mapper插件需要几个步骤,这里我们一一赘述:
首先,导入jar包。。pom文件中加入以下依赖
<!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!--mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> <!--mysql 驱动类--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>springboot的配置文件中加入配置
#mybatis配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.yunhui.bean #mapper #mappers 多个接口时逗号隔开 mapper.mappers=com.yunhui.mapper mapper.not-empty=false mapper.identity=MYSQL这里说明以下:com.yunhui.mapper是我的dao层,即mybatis的mapper接口。。
定义BaseMapper(注意:这个BaseMapper不可让spring容器扫描。。)
package com.yunhui.base; import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper; /** * @Author: Yun * @Description: * @Date: Created in 2018-01-18 13:53 */ public interface BaseMapper<T> extends Mapper<T>,MySqlMapper<T> { }
配置mapperScan。在springboot的启动类上加入如下注解
@MapperScan("com.yunhui.mapper")注意:这个注解导入的包是 tk.mybatis.spring.annotation.MapperScan,而不是springboot的mapperScan。。切记切记。
此时基础工作我们已经做好,那我们在开发中怎样使用mapper插件来进行开发呢???
在com.yunhui.mapper下新建一个UserMapper接口,继承BaseMapper
package com.yunhui.mapper; import com.yunhui.base.BaseMapper; import com.yunhui.bean.User; public interface UserMapper extends BaseMapper<User>{ }在resources/mapper/中建立userMapper.xml。。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yunhui.mapper.UserMapper"> </mapper>到了这一步,你们是不是已经发现了无论是UserMapper还是userMapper.xml,里面基本上都没有任何关于增删改查的代码。。那我们怎么来进行对表的操作呢??
其实,我们前面新建的BaseMapper,它继承了mapper插件提供的几个接口,已经有了增删改查这些方法了。。而我们自定义的userMapper,是一个mybatis的mapper接口,它通过继承了BaseMapper,所以也有了增删改查这些方法了。
此时,我们已经可以正常的使用UserMapper来进行对单表的增删改查了。
至此:springboot集成mapper插件成功!!