springboot集成mapper、pagehelper插件

现在大部分项目的持久层都是采用的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插件成功!!



猜你喜欢

转载自blog.csdn.net/qq_29992111/article/details/79097474