利用generator自動生成model(實體)、dao(接口)、mapper(映射)

1 在MySQL數據庫中建立相應的表

/*
Navicat MySQL Data Transfer

Source Server         : 虛擬機_zeus01
Source Server Version : 50717
Source Host           : 10.24.3.108:3306
Source Database       : security

Target Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001

Date: 2017-12-10 16:44:58
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `sys_acl`
-- ----------------------------
DROP TABLE IF EXISTS `sys_acl`;
CREATE TABLE `sys_acl` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '權限ID',
  `code` varchar(20) NOT NULL DEFAULT '' COMMENT '權限碼',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '權限名稱',
  `acl_module_id` int(11) NOT NULL DEFAULT '0' COMMENT '權限所在的權限模塊ID',
  `url` varchar(100) NOT NULL DEFAULT '' COMMENT '請求的URL,能夠填正則表達式',
  `type` int(11) NOT NULL DEFAULT '3' COMMENT '類型,1:菜單,2:按鈕,3:其餘',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '狀態,1:正常,0:凍結',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '權限在當前模塊的順序,有效到大',
  `remark` varchar(200) DEFAULT '' COMMENT '備註',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者的IP地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_acl
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_acl_module`
-- ----------------------------
DROP TABLE IF EXISTS `sys_acl_module`;
CREATE TABLE `sys_acl_module` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '權限模塊ID',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '權限模塊名稱',
  `parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '上級權限模塊ID',
  `level` varchar(200) NOT NULL DEFAULT '' COMMENT '權限模塊層級',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '權限模塊在當前層級的順序,由小到大',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '狀態,1:正常,0:凍結',
  `remark` varchar(200) DEFAULT '' COMMENT '備註',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後一次更新的操做者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後一次修改時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後一次更新操做者的IP地址 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_acl_module
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_dept`
-- ----------------------------
DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部門ID',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '部門名稱',
  `parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '上級部門ID',
  `level` varchar(200) NOT NULL DEFAULT '' COMMENT '部門層級',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '部門在當前層級的順序,由小到大',
  `remark` varchar(200) DEFAULT '' COMMENT '備註',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後一次更新的操做者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後一次修改時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後一次更新操做者的IP地址 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_dept
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_log`
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
  ` id` int(11) NOT NULL AUTO_INCREMENT,
  `type` int(11) NOT NULL DEFAULT '0' COMMENT '權限更新的類型,1:部門,2:用戶,3:權限模塊,4:權限,5:角色,6:角色用戶關係,7:角色權限關係',
  `target_id` int(11) NOT NULL COMMENT '基於type後製定的對象ID,好比用戶、權限、角色等表的主鍵',
  `old_value` text COMMENT '原始值',
  `new_value` text COMMENT '新值',
  `status` int(11) NOT NULL DEFAULT '0' COMMENT '當前是否復原過,0:沒有,1:復原過',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者的IP地址',
  PRIMARY KEY (` id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_log
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_role`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
  `name` varchar(20) NOT NULL DEFAULT '',
  `type` int(11) NOT NULL DEFAULT '1' COMMENT '角色類型,1:管理角色,2:其餘',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '狀態,1:可用,0:凍結',
  `remark` varchar(200) DEFAULT '' COMMENT '備註',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者的IP地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_role
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_role_acl`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_acl`;
CREATE TABLE `sys_role_acl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` int(11) NOT NULL COMMENT '角色ID',
  `acl_id` int(11) NOT NULL COMMENT '權限ID',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者的IP地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_role_acl
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_role_user`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_user`;
CREATE TABLE `sys_role_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` int(11) NOT NULL COMMENT '角色ID',
  `user_id` int(11) NOT NULL COMMENT '用戶ID',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者的IP地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_role_user
-- ----------------------------

-- ----------------------------
-- Table structure for `sys_user`
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID',
  `username` varchar(20) NOT NULL DEFAULT '' COMMENT '用戶名稱',
  `telephone` varchar(13) NOT NULL DEFAULT '' COMMENT '手機號',
  `email` varchar(20) NOT NULL DEFAULT '' COMMENT '郵箱',
  `password` varchar(40) NOT NULL DEFAULT '' COMMENT '加密後的密碼',
  `dept_id` int(11) NOT NULL DEFAULT '0' COMMENT '所在部門的ID',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '狀態, 1:正常,0:凍結,2:刪除',
  `remark` varchar(200) DEFAULT '' COMMENT '備註',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '最後更新者',
  `operator_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間',
  `operator_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最後一次更新者的IP',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of sys_user
-- ----------------------------
create.sql

 

2 導入generator工具文件夾到springMVC項目根目錄下

生成工具包:點擊獲取java

 

3 根據本身的項目修改生成配置文件

<?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="F:\javaProgramming\springCloud\permission\generator\mysql-connector-java-5.1.34.jar" /> <!-- 1 -->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!-- 數據庫連接URL、用戶名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://10.24.3.108:3306/security?characterEncoding=utf8" userId="root" password="123456">  <!-- 2 -->
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 --> <!-- 3 -->
        <javaModelGenerator targetPackage="cn.xiangxu.model" targetProject="F:\javaProgramming\springCloud\permission\generator\src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成的映射文件包名和位置 --> <!-- 4 -->
        <sqlMapGenerator targetPackage="cn.xiangxu.mapper" targetProject="F:\javaProgramming\springCloud\permission\generator\src">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置 --> <!-- 5 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="cn.xiangxu.dao" targetProject="F:\javaProgramming\springCloud\permission\generator\src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!-- 要生成那些表(更改tableName和domainObjectName就能夠) --><!-- 6 -->
        <table tableName="sys_user" domainObjectName="SysUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_dept" domainObjectName="SysDept" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_acl" domainObjectName="SysAcl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_acl_module" domainObjectName="SysAclModule" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_role" domainObjectName="SysRole" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_role_acl" domainObjectName="SysRoleAcl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_role_user" domainObjectName="SysRoleUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_log" domainObjectName="SysLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
    </context>
</generatorConfiguration>
生成文件

  3.1 修改驅動包的位置

    

<classPathEntry location="F:\javaProgramming\springCloud\permission\generator\mysql-connector-java-5.1.34.jar" /> <!-- 1 -->

 

  3.2 修改數據庫鏈接信息

    

<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://IP地址:端口/數據庫?characterEncoding=utf8" userId="用戶名" password="密碼">  <!-- 2 -->

  3.3 修改生成文件的包名和存放路徑

    

<!-- 生成模型的包名和位置 --> <!-- 3 -->
        <javaModelGenerator targetPackage="cn.xiangxu.model" targetProject="F:\javaProgramming\springCloud\permission\generator\src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成的映射文件包名和位置 --> <!-- 4 -->
        <sqlMapGenerator targetPackage="cn.xiangxu.mapper" targetProject="F:\javaProgramming\springCloud\permission\generator\src">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置 --> <!-- 5 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="cn.xiangxu.dao" targetProject="F:\javaProgramming\springCloud\permission\generator\src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

  3.4 設置數據庫表名和model、dao、mapper的對應關係

    

<!-- 要生成那些表(更改tableName和domainObjectName就能夠) --><!-- 6 -->
        <table tableName="sys_user" domainObjectName="SysUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_dept" domainObjectName="SysDept" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_acl" domainObjectName="SysAcl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_acl_module" domainObjectName="SysAclModule" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_role" domainObjectName="SysRole" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_role_acl" domainObjectName="SysRoleAcl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_role_user" domainObjectName="SysRoleUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sys_log" domainObjectName="SysLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />

  3.5 執行生成語句

    java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwritemysql

  

4 生成效果

  

  執行成功後控制檯輸出正則表達式

    

  4.1 執行前的目錄結構

    

  4.2 執行後的目錄結構

    

相關文章
相關標籤/搜索