spring+mybitis+tk+pagehelper+lombok使用

  1. 使用maven管理添加依賴
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.0.3</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>
         <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>

添加配置類

    @Bean(name = "sqlSessionFactoryBean")
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        Interceptor[] interceptors = new Interceptor[] {pageInterceptor()};
        sqlSessionFactoryBean.setPlugins(interceptors);
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        Resource[] resources = resolver.getResources("classpath:mapper/*.xml");
        sqlSessionFactoryBean.setMapperLocations(resources);
        return sqlSessionFactoryBean;
    }

    @Bean
    public PageInterceptor pageInterceptor(){
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("dialect", "mysql");
        properties.setProperty("reasonable", "true");
        pageHelper.setProperties(properties);
        PageInterceptor pageInterceptor = new PageInterceptor();
        pageInterceptor.plugin(pageHelper);
        return pageInterceptor;
    }

在掃描類上添加註解@tk.mybatis.spring.annotation.MapperScan,比如我的是spring boot的啓動類上。
然後我們再配置一個mybatis-generator,這個是mybits逆向工程生成實體類和mapper,首先需要在項目資源目錄下配置一個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>
    <!-- 數據庫驅動-->
    <context id="DB2Tables" targetRuntime="MyBatis3Simple">
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <!-- mapper接口中繼承的接口 -->
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.common.MySqlMapper"/>
            <property name="useMapperCommentGenerator " value="true"/>
            <!-- caseSensitive默認false,當數據庫表名區分大小寫時,可以將該屬性設置爲true -->
            <property name="caseSensitive" value="true"/>
            <property name="generateColumnConsts" value="`"/>
            <!-- 在bean中添加@data lombok -->
            <property name="lombok" value="Data"/>
        </plugin>
        <!--數據庫鏈接URL,用戶名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://ip:port/schema"
                        userId="userId"
                        password="passwd">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.base.data.dto"
                            targetProject="./src/main/java">
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="resources/mapper"
                         targetProject="src/main">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.base.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <table tableName="tableName" domainObjectName="TableName"/>
    </context>
</generatorConfiguration>

然後在需要運行逆向工程的模塊pom中添加下面的build

 <build>
        <plugins>
            <!--mybatis自動生成代碼插件  用mysql8.0的依賴以及驅動包會報錯,可以切換mysql5.8版本以下的依賴-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <!-- generatorConfig.xml文件路徑 ${basedir}表示項目根目錄,即包含pom.xml文件的目錄,是maven內置屬性-->
                    <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                    <!-- 是否覆蓋,true表示會替換生成的JAVA文件,false則不覆蓋 -->
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.45</version>
                    </dependency>
                    <!-- 通用mapper依賴  假如需要使用通用mapper,放開註釋 -->
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>              
                </dependencies>
            </plugin>
        </plugins>
    </build>

然後使用maven運行插件
在這裏插入圖片描述
在代碼中使用分頁如下

        Example example = new Example(SystemParam.class);
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("type", code);
        PageHelper.startPage(1, 10);
        List<SystemParam> list = systemParamMapper.selectByExample(example);
        PageInfo<SystemParam> page = new PageInfo<>(list);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章