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