SpringBoot集成通用Mapper 分页插件 Generator

研究了一天终于实现了在springboot中集成通用Mapper,分页插件,和Generator,特此记录一下

首先是集成Generator,有几种方式,在这里使用maven集成

  1. 在pom.xml中集成Generator插件
<plugins>
   <plugin>
       <groupId>org.springframework.boot</groupId>
       <!--热部署插件-->
       <artifactId>spring-boot-maven-plugin</artifactId>
       <!--项目每次修改之后重新启动-->
       <!--<configuration>
           <fork>true</fork>
       </configuration>-->
   </plugin>
   <plugin>
       <groupId>org.mybatis.generator</groupId>
       <artifactId>mybatis-generator-maven-plugin</artifactId>
       <version>1.3.5</version>
       <configuration>
           <verbose>true</verbose>
           <overwrite>true</overwrite>
       </configuration>
       <dependencies>
           <!--使用6.0以上的版本会生成文件失败,暂时不知道原因-->
           <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>5.1.44</version>
           </dependency>
           <dependency>
               <groupId>tk.mybatis</groupId>
               <artifactId>mapper</artifactId>
               <version>3.4.5</version>
           </dependency>
       </dependencies>
   </plugin>
</plugins>

2.配置generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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="generator.properties"></properties>
    <!--这里是重点!!targetRuntime要配置MyBatis3Simple而不是MyBatis3
    否则会命名冲突!!-->
    <context id="default" targetRuntime="MyBatis3Simple">
        <!--集成通用Mapper插件-->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
        </plugin>
        <!-- 是否去除自动生成的注释 true:是 : false:否 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!--jdbc的数据库连接 -->
        <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="true"/>
        </javaTypeResolver>


        <javaModelGenerator targetPackage="${jdbc.entity.package}" targetProject="src/main/java">
          <property name="constructorBased" value="true"/>
   <property name="enableSubPackages" value="false"/>
           <property name="immutable" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="${jdbc.mapper.package}" targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <javaClientGenerator targetPackage="${jdbc.mapper.package}" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>

            <property name="exampleMethodVisibility" value=""/>

            <property name="methodNameCalculator" value=""/>
            <!--为生成的接口添加父接口  -->
            <property name="rootInterface" value=""/>

        </javaClientGenerator>
        <table schema="" tableName="%">
        </table>
    </context>
</generatorConfiguration>

3.运行mvn命令

mvn mybatis-generator:generate

到此就可以生成mapper文件以及xml,在这里提及一下,在IDEA工具中,如果将xml生成在java目录下是会报错的,必须生成在resource目录中,如果不想生成在resource中
则可以在maven中配置资源目录用来识别xml

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
    </resource>
    <!--此处如果不配做resource目录,则运行其他maven命令时,maven将不会识别resource中的配置文件-->
    <resource>
        <directory>src/main/resources</directory>
    </resource>
</resources>

4.在springboot的配置文件中配置

mybatis:
  type-aliases-package: com.spring.demo.entity
  mapper-locations: classpath:generator/*.xml
  configuration:
    #支持驼峰命名法
    map-underscore-to-camel-case: true
    #打开延迟加载的开关
    lazy-loading-enabled: true
    #将积极加载改为消极加载即按需加载
    aggressive-lazy-loading: false
    #开启二级缓存
    cache-enabled: true

5.用maven集成通用Mapper,分页插件

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>
<!--通用Mapper插件-->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>1.1.5</version>
</dependency>

使用这两个包则可以去掉mybatis的依赖,这两个包中已经包含了mybatis的依赖

6.新建MyBatisConfig用来配置分页插件

@Configuration
public class MyBatisConfig{

    @Bean
    public PageHelper pageHelper(){
        PageHelper pageHelper = new PageHelper();
        //添加配置,也可以指定文件路径
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }
}

7.如果使用了springboot的热部署插件则还需要在入口文件中将mapper文件放入
restart启动器

System.setProperty("restart.include.mapper", "/mapper-[\\\\w-\\\\.]+jar");
System.setProperty("restart.include.pagehelper", "/pagehelper-[\\\\w-\\\\.]+jar");

至此大功告成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot可以很方便地整合通用Mapper,只需要在pom.xml中添加通用Mapper的依赖,然后在配置文件中配置数据源和通用Mapper的相关属性即可。 具体步骤如下: 1. 在pom.xml中添加通用Mapper的依赖: ```xml <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> ``` 2. 在配置文件中配置数据源和通用Mapper的相关属性: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root driver-class-name: com.mysql.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true mapper: mappers: - tk.mybatis.mapper.common.Mapper not-empty: false identity: MYSQL ``` 其中,mapper.mappers指定了要使用的Mapper接口,这里使用了通用MapperMapper接口;mapper.identity指定了主键生成策略,这里使用了MySQL的自增长主键。 3. 在Mapper接口中继承通用MapperMapper接口即可使用通用Mapper提供的方法: ```java public interface UserMapper extends Mapper<User> { } ``` 这样就可以使用通用Mapper提供的方法来进行数据库操作了,例如: ```java @Autowired private UserMapper userMapper; public void addUser(User user) { userMapper.insert(user); } public void updateUser(User user) { userMapper.updateByPrimaryKeySelective(user); } public void deleteUser(Long id) { userMapper.deleteByPrimaryKey(id); } public User getUser(Long id) { return userMapper.selectByPrimaryKey(id); } public List<User> getUsers() { return userMapper.selectAll(); } ``` 以上就是Spring Boot整合通用Mapper的基本步骤,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值