Mybatis Generator自动生成代码以及可能出现的问题

一:如何用使用mybatis generator生成代码

   1:任意位置新建文件夹,注意路径全英文,新建一个src目录,以及generatorConfig.xml文件,下载jar包如下:

            Mybatis Generator自动生成代码以及可能出现的问题_第1张图片

懒得下载的同学可以配置maven从中央仓库下载,如下

		
		
			org.mybatis.generator
			mybatis-generator-core
			1.3.6
		
		
		
			mysql
			mysql-connector-java
			8.0.11
		

    2:写generatorConfig配置文件:

  
  
  
  
      
      
          
              
              
              
          
          
          
          
          
              
          
          
          
              
              
          
          
          
              
          
          
          
              
          
          
        

3:运行mybatis generator

    1:配置java环境变量

    2:输入指令java -jar mybatis-generator-core-1.3.6.jar -configfile generatorConfig.xml -overwrite即可在src目录下生成代码


二:配置文件中会出现的问题:

1:java.sql.SQLException:The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone.

    数据库和系统时区存在差异,在低版本的mysql驱动中存在该问题

    解决方法:在jdbc url后加上serverTimezone=GMT

    例如在上面的xml中加上:

   ?serverTimezone=GMT" userId="连接ID" password="密码">  
          

2:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.

    说的很清楚了,新驱动的类比旧的多一个cj,改一下就OK

    在上述的xml中更改:

cj.jdbc.Driver" connectionURL="jdbc:mysql://数据库ip/数据库名称" userId="连接ID" password="密码">  
          

3:自动生成的代码只有insert方法,没有select,update等方法,提示Cannot obtain primary key information from the database, generated objects may be incomplete

   有两种原因导致这个问题。一是没有设置主键,二是因为mysql-connector-java版本不兼容,参考https://blog.csdn.net/jpf254/article/details/79571396。

解决方案:在确定设置主键的情况下,在jdbc url后加上nullCatalogMeansCurrent=true

例如:

?serverTimezone=GMT&nullCatalogMeansCurrent=true" userId="连接ID" password="密码">  
 

这里连接两个参数务必使用转义符&而不是&,否则会报错:对实体 "nullCatalogMeansCurrent" 的引用必须以 ';'分隔符结尾。

4:error:前言中不允许有内容。

     xml文件的编码问题,另存为ANSI编码。

三:完整的配置文件

  
  
  
  
      
      
          
              
              
              
          
          
          
          
          
              
          
          
          
              
              
          
          
          
              
          
          
          
              
          
          
        
更改配置文件中的各项名称即可

四:参考博客

https://blog.csdn.net/oppo5630/article/details/52162783

https://blog.csdn.net/zhshulin/article/details/23912615


你可能感兴趣的:(mybatis)