天天看点

【MyBatis框架】MyBatis使用lombok插件和generator自动化简化开发一、lombok插件二、Mybatis自动化

一、lombok插件

1.1 lombok的安装

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
    <scope>provided</scope>
</dependency>
           

1.2 lombok的使用

@Data:注解在类上,提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法;

@Setter :注解在属性上,为属性提供 setting 方法;

@Getter :注解在属性上,为属性提供 getting 方法;

@Log4j :注解在类上,为类提供一个属性名为 log 的 log4j 日志对象;

@NoArgsConstructor :注解在类上,为类提供一个无参的构造方法;

@AllArgsConstructor :注解在类上,为类提供一个全参的构造方法;

@Cleanup : 可以关闭流;

@Builder :被注解的类加个构造者模式

@Synchronized :加个同步锁;

@SneakyThrows : 等同于try/catch 捕获异常;

@NonNull : 如果给参数加个这个注解,参数为null会抛出空指针异常;

@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

@ToString 重写toString()方法

注意区分@Data和@Value的

二、Mybatis自动化

之前无论是通过xml声明的形式或者注解的形式构建Mybatis项目,都有着大量重复的操作,例如:实体类Bean的定义、Dao接口的定义、Mapper.xml配置文件的定义等。

如何实现自动化生成?

可以通过mybatis.generator依赖包实现。

2.1 添加依赖包

<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.5</version>
</dependency>
           

2.2 加载插件

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.5</version>
            <configuration>
                <!--配置文件的路径-->
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <overwrite>true</overwrite>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-core</artifactId>
                    <version>1.3.5</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>s
           

2.3 修改配置文件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>
    <!--数据库驱动jar -->
    <classPathEntry
                    location="D:\maven_repository\mysql\mysql-connector-java\5.1.40\mysql-connector-java-5.1.40.jar" />
    <context id="MyBatis" targetRuntime="MyBatis3">
        <!--去除注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test2?useUnicode=true&amp;characterEncoding=utf-8"
                        userId="root"
                        password="">
        </jdbcConnection>
        <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建
        使用Maven生成在target目录下,会自动创建) -->
        <javaModelGenerator targetP说ackage="com.maven.bean"
                            targetProject="C:\Users\ASUS\IdeaProjects\mybatis3\src\main\java">
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!--生成SQLmapper文件 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="C:\Users\ASUS\IdeaProjects\mybatis3\src\main\resources">
        </sqlMapGenerator>
        <!--生成Dao文件,生成接口 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.maven.dao"
                             targetProject="C:\Users\ASUS\IdeaProjects\mybatis3\src\main\java">
        </javaClientGenerator>
        <table tableName="student" enableCountByExample="false"
               enableUpdateByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" selectByExampleQueryId="false">
        </table>
        <table tableName="grade" enableCountByExample="false"
               enableUpdateByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" selectByExampleQueryId="false">
        </table>
        <table tableName="role" enableCountByExample="false"
               enableUpdateByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>
           

运行:maven Project选项卡->plugins->找到mybatis-generator-core,双击运行就会自动生成

注意:运行一次即可,如果运行过程中,未完全成功。则将原来生成的代码删除后,再次运行。

切记!切记!切记!

继续阅读