generator自动生成mybatis配置和类信息报Table configuration with catalog null错误解决

Mybatis generator,Table configuration with catalog null, schema null报错解决

运行generator命令自动生成mybatis配置和类的过程中报错。
下面列出报错可能的原因及对应解决办法。

原因一:mybatis-generator:generate命令写错了

将命令写错写成了mybatis-generator:generator。一个单词的差别。
报如下错误信息:
在这里插入图片描述

解决方法

将运行窗口中的命令拼写正确即可。
找到generatorConfig.xml文件,右击选择菜单中的Run As->Run Configurations…->Maven Build->New_configuration
在这里插入图片描述
正确命令为:

mybatis-generator:generator

在这里插入图片描述

原因二:generatorConfig.xml文件中数据库的驱动包路径问题

在generatorConfig.xml配置文件查看如下信息:
在这里插入图片描述
路径错误,或驱动包版本不匹配,导致驱动包加载出错。

解决方法

将对应版本正确的jar包路径填入即可。
代码如下:

 <classPathEntry location="D:\maven_repo\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar" />

原因三:数据库中没建表

用navicat或PL/sql等可视化数据库管理工具查看对应数据库信息。

在这里插入图片描述
查看发现没有创建需要使用的表。

解决方法

使用数据库管理工具或sql语句在对应数据库创建需要用的表。
数据库建表语句:

#用户表
create table cms_user(
  id bigint primary key auto_increment,
  username varchar(100),
  password varchar(100),
  telephone varchar(60),
  realname varchar(100),
  gender varchar(1) check(gender in('F','M')),
  birth date,
  register_time date,
  status varchar(100),
  user_face varchar(1000)

);


#日志表
create table cms_logs(
  id bigint primary key auto_increment,
  content text,
  aution_time date,
  user_id bigint references cms_user(id)
);


#权限表
create table cms_privilege(
  id bigint primary key auto_increment,
  name varchar(100),
  description varchar(4000),
  route varchar(100),
  type varchar(20) check(gender in('menu','tab','action')),
  icon varchar(1000),
  parent_id bigint references cms_privilege(id)
);

#角色
create table cms_role(
  id bigint primary key auto_increment,	
  name varchar(100)
);


#用户角色
create table cms_user_role(
  id bigint primary key auto_increment,	
  user_id bigint references cms_user(id),
  role_id bigint references cms_role(id)
);



#桥表cms_role_privilege
create table cms_role_privilege(
 id bigint primary key auto_increment,
 role_id  bigint references cms_role(id),
 privilege_id bigint references cms_privilege(id)
);


#栏目
create table cms_category(
 id bigint primary key auto_increment,
 name varchar(100),
 description varchar(4000),
 no bigint, 
 parent_id bigint references cms_category(id)
);


#文章
create table cms_article(
  id bigint primary key auto_increment,
  title varchar(1000),
  content text,
  source text,
  publish_time date,
  read_times date,
  status varchar(100),
  thumb_up bigint,
  thumb_down bigint,
  author_id bigint references cms_user(id),
  category_id bigint references cms_category(id)
);


#评论
create table cms_comment(
  id bigint primary key auto_increment,
  content text,
  comment_time date,
  status varchar(100),
  user_id bigint references cms_user(id),
  article_id bigint references cms_article(id),
  parent_id bigint references cms_comment(id)
);

直接使用工具建表:
在这里插入图片描述

原因四:generatorConfig.xml文件中没有配置映射信息

在generatorConfig.xml文件中如下位置缺少映射配置:

在这里插入图片描述

解决方法

在generatorConfig.xml文件中查看有没有:

<table tableName="" domainObjectName=""></table>

的格式配置。

有的话直接将tableName对应改写为自己的表名,domainObjectName改为所要生成的实体名即可。
没有就添加如下格式代码:

    <table tableName="cms_category" domainObjectName="Category" ></table>
    <table tableName="cms_article" domainObjectName="Article" ></table>
    <table tableName="cms_logs" domainObjectName="Logs" ></table>
    <table tableName="cms_privilege" domainObjectName="Privilege" ></table>
    <table tableName="cms_role" domainObjectName="Role" ></table>
    <table tableName="cms_role_privilege" domainObjectName="RolePrivilege" ></table>
    <table tableName="cms_user" domainObjectName="User" ></table>
    <table tableName="cms_comment" domainObjectName="Comment" ></table>
    <table tableName="cms_user_role" domainObjectName="UserRole" ></table>

解决结果

将如上所有问题排查,项目成功运行。
在这里插入图片描述

总结

这次错误信息耽误了我一晚上加一上午,上面的情况是实际项目操作中所遇到的问题,希望以后细心一些。记录一下自己的粗心,细节真的太重要了。排查问题的过程是很快乐的,解决问题的成就感也是没法形容的,继续努力!

发布了144 篇原创文章 · 获赞 117 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41306364/article/details/103027822