在使用mvc架构编写代码时,通常都是写controller、service、dao及xml。其中IDEA有一款插件easycode,可以快速生成这些,可大大提高代码效率。

一、使用插件生成代码

1、安装easycode插件

File→settings→Plugin

2、mysql数据库生成代码

1、事先需要准备一个数据库zwh,并创建一个表,脚本如下:

DROP TABLE IF EXISTS `t_sys_role`;
CREATE TABLE `t_f_role`  (
  `role_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色编号',
  `role_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称',
  `role_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色描述',
  `create_user` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_user` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`roleno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

如下所示:

2、创建一个spring boot工程,创建包,如com.zwh,在右侧选择mysql数据库

 Database→ + → Data source → mysql

注意:测试连接之前先要下载驱动。

点击右侧的矩形框,选择数据库。此时可以看到数据的表,如下所示

3、选中表t_sys_role,右键选中EasyCodeMybatisCodeHelper,然后点击Generate Code

在弹出的页面选择需要生成的代码所在的包。

根据需要进行勾选,不一定要生成所有的代码

3)点击OK生成对应的代码,xml会自动放在resources目录下的mapper中,可根据需要对生成的代码进行修改

打开实体类可以看出,它不仅生成的所有的字段,并自动将下划线转为驼峰模式,还生成了get和set方法。

在根据表创建对象且字段很多时,这个插件就显得格外方便。

4、使用IDEA执行SQL语句

上述在连接到数据库后,IDEA也可以使用SQL语句修改表结构及数据。

打开SQL终端:右键表名,选择+ New,点击Query Console,即可打开终端

输入sql语句,点击左上角的执行按钮即可执行

3、oracle数据生成代码

注意:生成的xml文件中将insert和update方法删除,否则会报错:Mapped Statements collection already contains value for com.ccb.rest.dao.CustInfoDao.insert,

即insert方法和tkmapper中的insert方法冲突。

二、使用generatorConfig.xml自动生成代码

注意:环境变量中的java必须是1.8的

1、generatorConfig.xml文件在项目根目录中

(1)、pom文件中添加:

<build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <configurationFile>
                        mybatis-generator/generatorConfig.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>

        </plugins>

    </build>

(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>

    <context id="mysqlgenerator" targetRuntime="MyBatis3">
        <property name="autoDelimitKeywords" value="true"/>
        <!--可以使用``包括字段名,避免字段名与sql保留字冲突报错-->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!-- 自动生成toString方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
        <!-- 自动生成equals方法和hashcode方法 -->
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>

        <!-- 非官方插件 https://github.com/itfsw/mybatis-generator-plugin -->
        <!-- 查询单条数据插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.SelectOneByExamplePlugin"/>
        <!-- 查询结果选择性返回插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.SelectSelectivePlugin"/>
        <!-- Example Criteria 增强插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ExampleEnhancedPlugin"/>
        <!-- 数据Model属性对应Column获取插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ModelColumnPlugin"/>
        <!-- 逻辑删除插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.LogicalDeletePlugin">
            <!-- 这里配置的是全局逻辑删除列和逻辑删除值,当然在table中配置的值会覆盖该全局配置 -->
            <!-- 逻辑删除列类型只能为数字、字符串或者布尔类型 -->
            <property name="logicalDeleteColumn" value="deleted"/>
            <!-- 逻辑删除-已删除值 -->
            <property name="logicalDeleteValue" value="1"/>
            <!-- 逻辑删除-未删除值 -->
            <property name="logicalUnDeleteValue" value="0"/>
        </plugin>

        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!--<property name="suppressAllComments" value="true"/>-->
        </commentGenerator>

        <!--数据库连接信息-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.10.133:3306/dts-shop?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;verifyServerCertificate=false&amp;useSSL=false"
                        userId="root"
                        password="123456"/>

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

        <javaModelGenerator targetPackage="com.qiguliuxing.dts.db.domain" targetProject="src/main/java"/>
        <sqlMapGenerator targetPackage="com.qiguliuxing.dts.db.dao" targetProject="src/main/resources"/>
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.qiguliuxing.dts.db.dao"
                             targetProject="src/main/java"/>
        <!--表名-->
        <table tableName="dts_monitor">
            <generatedKey column="monitor_id" sqlStatement="MySql" identity="true"/>
        </table>

    </context>
</generatorConfiguration>

(3)、点击mybatis-generator:generate运行

生成四个文件

2、generatorConfig.xml文件在resources目录下

(1)、pom文件中添加:

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.2</version>
            <configuration>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
            </configuration>
        </plugin>
    </plugins>
</build>

(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>
    <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
    <classPathEntry
            location="E:\apache-maven-3.5.2\repository\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/>
    <context id="MysqlTables" targetRuntime="MyBatis3" defaultModelType="flat">
        <property name="javaFileEncoding" value="UTF-8"/>
        <!-- 分页相关 -->
        <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"/>
        <!-- 带上序列化接口 -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
 
        <!--数据库连接配置-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://数据库ip:端口/数据库名?useUnicode=true&amp;characterEncoding=UTF-8"
                        userId="用户名" password="密码">
        </jdbcConnection>
 
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
 
        <!-- 根据工程修改targetPackage,工程目录中新建do子目录 -->
        <javaModelGenerator targetPackage="com.xx.xx.do"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
 
        <sqlMapGenerator targetPackage="sqlmap" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
 
        <!-- 根据工程修改targetPackage,mapper下新建子目录 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.xx.xx.account" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
 
        <!-- 添加表和实体的映射,实体以DO结尾,表和表中的字段以下划线_分隔 -->
        <table tableName="表名" domainObjectName="表名(驼峰命名)DO">
            <generatedKey column="id" sqlStatement="JDBC" identity="true"/>
        </table>
    </context>
</generatorConfiguration>

(3)、点击mybatis-generator:generate运行

 

posted on 2021-12-08 19:17  周文豪  阅读(1116)  评论(0)    收藏  举报