一、简介

mybatis-geneator是一款mybatis自动代码生成工具,可以通过配置,快速生成mapper和xml文件。

二、配置方法

在项目的pom文件中添加插件配置

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

在main的resource目录下创建generatorConfig.xml文件

配置文件中的内容如下,可根据需要自行修改

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--导入属性配置--><properties resource="datasource.properties"></properties><!-- 指定数据库驱动的jdbc驱动jar包的位置 --><classPathEntry location="${db.driverLocation}" /><!-- context 是逆向工程的主要配置信息 --><!-- id:起个名字 --><!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 --><context id="default" targetRuntime="MyBatis3"><!--optional,旨在创建class时,对注释进行控制--><commentGenerator><property name="suppressDate" value="true" /><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--jdbc的数据库连接--><jdbcConnection driverClass="${db.driverClassName}"connectionURL="${db.url}"userId="${db.username}"password="${db.password}"></jdbcConnection><!--非必须,类型处理器,在数据库类型和java类型之间的转换控制--><javaTypeResolver><!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 --><!-- 不是 double 和 long 类型 --><!-- 使用常用的基本类型代替 sql 包下的引用类型 --><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetPackage:生成的实体类所在的包 --><!-- targetProject:生成的实体类所在的硬盘位置 --><javaModelGenerator targetPackage="com.mall.pojo"targetProject=".\src\main\java"><!-- 是否允许子包 --><property name="enableSubPackages" value="false" /><!-- 是否对modal添加构造函数 --><property name="constructorBased" value="true" /><!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 --><property name="trimStrings" value="true" /><!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 --><property name="immutable" value="false" /></javaModelGenerator><!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 --><sqlMapGenerator targetPackage="mappers"targetProject=".\src\main\resource"><!-- 针对数据库的一个配置,是否把 schema 作为字包名 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.mall.dao" targetProject=".\src\main\java"><!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 --><property name="enableSubPackages" value="false" /></javaClientGenerator><table tableName="user" domainObjectName="User"enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false"selectByExampleQueryId="false"></table></context>
</generatorConfiguration>

generatorConfig.xml文件中的一些配置信息需要在配置文件中添加

在同一目录下创建datasource.properties文件

db.driverLocation=C:/Users/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar
db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.199.193:3306/mall?characterEncoding=utf-8
db.username=root
db.password=123456

配置的三行的192.168.199.193需要替换成所在主机的IP,mall替换成数据库名称

配置第四行和第五行分别配置为数据库连接的用户名和密码

在generatorConfig.xml文件中添加完需要生成的表的配置后

双击图中配置,就可以自动生成mapper和xml文件了

但是!以上仅存在于顺利的情况下!!!下面我会讲一下我遇到的坑和相关的解决方法:)

问题一:在Maven Projects侧根本就找不到mybatis-generator,无法双击

解决方法:打开pom文件,在pluginManagement标签的下面创建plugins标签,然后将mybatis-generator插件配置移动到plugins标签中,如图

问题二:双击mybatis-generator后报错

[ERROR] Error resolving version for plugin 'org.apache.maven.plugin:maven-compiler-plugin' from the repositories [local (C:\Users\.m2\repository), central (http://repo.maven.apache.org/maven2)]: Plugin not found in any plugin repository -> [Help 1]

解决方法:pom文件中maven的配置要加version标签,如图

问题三:报错

[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mall: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Cannot resolve classpath entry: C:Users.m2

解决方法:因为偷懒,datasource.properties文件中的db.driverLocation值是直接在文件夹中复制粘贴的,所以路径的斜线都是“\”,只要改成“/”就可以了,上面的配置步骤中的配置内容已是正确内容

问题四:这个问题是后面几个报错的整合

报错1:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mall: Access denied for user 'mall'@'219.143.190.211' (using password: YES) -> [Help 1]

报错2:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mall: null,  message from server: "Host 'zs-HP.lan' is not allowed to connect to this MySQL server" -> [Help 1]

报错3:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mall: Access denied for user 'root'@'%' to database 'mall' -> [Help 1]

报错4:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mall: SELECT command denied to user 'root'@'zs-HP.lan' for table 'cart' -> [Help 1]

报错5:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project mall: Access denied for user 'root'@'zs-HP.lan' (using password: YES) -> [Help 1]

以上报错基本都是出于同一类问题,只要按照如下步骤操作,基本可以避免。

1、找到mysql bin目录下的my.ini文件,在[mysql]下面加上 skip-grant-tables  用于跳过密码

2、mysql开启mysql远程访问权限(cmd以管理员身份运行)

  • 登录到mysql:  mysql -uroot -ppwd
  • 查看user表:
mysql> use mysql
Database changed
mysql> select host,user,password,Grant_priv,Super_priv from user;
+--------------+---------+--------------------------------------+------------+------------+
| host         | user    | password                             | Grant_priv |  Super_priv
+--------------+---------+-------------------------------------------+------------+--------
| LocalHost    | root    | *FED29C14B2E900D70B11B1F1B370F953BA51| N          | Y
+--------------+---------+--------------------------------------+------------+------------+
1 row in set (0.00 sec)
  • 将localhost修改成%。修改成%表示,所有主机都可以通过root用户访问数据库。

命令:mysql> update user set host = '%',Grant_priv='Y', Super_priv='Y'  where user = 'root';

再次查看表:mysql>use mysql

查看是否已经修改好

最后!!!输入命令:mysql> FLUSH PRIVILEGES; 刷新之前修改的内容

这才能生效!!!!!

3、修改数据库表权限

如果mysql客户端(本人使用的是Navicate)选中表单机右键可以找到设置权限选项,则勾选相应的操作即可

如果右键没有设置权限选项,则需要新增用户,配置如下

然后双击管理用户,即可进行权限配置

完成以上步骤,基本可以解决大部分的报错,如有其他问题,本人暂时还未遇到,请自行百度 :)

以上,感谢~

mybatis-generator 的坑我都走了一遍相关推荐

  1. 用mybatis的generator自动生成代码--坑我都走了一遍,后面的同学别踩了

    先说什么是mybatis-generator? mybatis-geneator是一款mybatis自动代码生成工具,可以通过配置,快速生成mapper和xml文件. 步骤一:在pom文件中添加插件配 ...

  2. MyBatis Generator的使用和坑

    最近复现个问题,需要用到MyBatis,了解到可以MyBatis Generator插件自动生成MyBatis的相关代码,确实非常方便. mybatis-generator就是mybatis代码生成器 ...

  3. MyBatis Generator分页插件RowBoundsPlugin坑

    一.Mybatis Generator设置分页 Mybatis Generator没有设置分页,但自带了个RowBoundsPlugin分页插件,故而配置 <plugin type=" ...

  4. mybatis generator使用总结

    一.mybatis项目的体系结构 百度mybaits,可以进入mybatis的github:https://github.com/mybatis. mybatis是一个大大的体系,它不是孤立的,它可以 ...

  5. 这些年我踩过的`Mybatis`代码生成的坑

    这些年我踩过的Mybatis代码生成的坑 原谅我不成熟的想法,因为selectByExample真香 文章目录 这些年我踩过的`Mybatis`代码生成的坑 `Mybatis`代码生成工具 安装 配置 ...

  6. Springboot—mysql+mybatis+generator插件

    1.idea-generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOC ...

  7. 取代 Mybatis Generator,这款代码生成神器配置更简单,开发效率更高

    作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper. Mybatis Generator 是 ...

  8. 从命令行及java程序运行MyBatis Generator 1.3.x生成MyBatis3.x代码

    为什么80%的码农都做不了架构师?>>>    近期因为项目需要,调研了myBatis 3.x的使用,当然,顺便也就研究了一下使用Generator来通过逆向工程生成pojo,map ...

  9. MyBatis 的这些坑你有踩过吗?

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:http://t.cn/EiVxHRU 作为一个高级工程师,你真的了解框架源码吗? 大多数开发者 ...

最新文章

  1. 触摸屏与计算机通讯视频在线,MCGS触摸屏与电脑调试软件modbus通讯
  2. 首次BCH无需信任原子交换已完成
  3. python 代码-我整理的Python代码规则
  4. 菜单工具栏wxPython菜单与工具栏基础示例
  5. Android中数据库的一些操作(增删改查)
  6. 驱动框架2——内核驱动框架中LED的基本情况、初步分析
  7. 蓝牙连接不上车要hfp_鹅厂又要霸屏,连接四部剧将袭,冲着主创颜值不追不行啦...
  8. python爬虫本科容易找工作吗_python爬虫基础学完了,我真的能找到一份工作吗?...
  9. pandas 合并所有列_Python学习:Pandas库+练习资料
  10. Bootstrap 3 : 图片上传预览 image upload preview
  11. ibatis中#和$符号的区别
  12. 第三季-第24课-TCP通讯程序设计
  13. [IOS, Android] UI Thread的一些思想
  14. ios 音频录音、上传至7牛、播放及其与android兼容的问题
  15. 妄想山海测试服下载for android,妄想山海测试服
  16. ObjC开发-常用第三方开源框架介绍
  17. 【Arduino】继电器控制水泵抽水
  18. 华三防火墙配置IPSec隧道
  19. sonar (default-cli) on project webgoat-parent: Not inside a Git work tree 错误以及解决方案
  20. 域名如映射为 IP: 端口

热门文章

  1. 【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 42页论文及代码
  2. 一文全懂,Android程序员最新职业规划
  3. Matlab如何在文件中写入空格和换行
  4. 获取IP地址信息的API合集
  5. web开发灵感推荐--34个有吸引力的电影网站设计灵感
  6. Win10 更新最新系统 想恢复Win10系统为出厂设置 重置Win10系统时提示“找不到恢复环境”
  7. ADMob 原生广告展示不完全,mediaView无图片数据
  8. Vue--Router--路由模式--种类/区别/原理
  9. 什么是服务器托管?服务器托管和虚拟主机的区别
  10. Word奇偶页的页眉页脚设置