一般出现这个情况的时候,怎么办?
第一步:不要慌,保持冷静的思考和清醒的头脑,这很关键!
第二步:打开浏览器,搜索一下:Cannot obtain primary key information from the database, generated objects may be incomplete这个错误,
遇到这种情况的时候,代码生成器就只会生成insert和selectAll这两个方法,这个时候需要在jdbc配置的connectionURL上加上一个参数:nullCatalogMeansCurrent=true。然后重新执行代码生成器,就可以看到其他的方法都出现了。
我的generatorConfig.xml配置如下(注意看connectionURL配置):
这里面有我的两个代码插件:
1、注释插件CommentGenerator:
package com.xqnode.boot.util;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.internal.DefaultCommentGenerator;
public class CommentGenerator extends DefaultCommentGenerator {
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
super.addFieldComment(field, introspectedTable, introspectedColumn);
if (!"".equals(introspectedColumn.getRemarks())) {
field.addJavaDocLine("");
}
}
}
2、xml文件覆盖插件OverwriteXmlPlugin:
package com.xqnode.boot.util;
import org.mybatis.generator.api.GeneratedXmlFile;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import java.util.List;
public class OverwriteXmlPlugin extends PluginAdapter {
@Override
public boolean validate(List warnings) {
return true;
}
@Override
public boolean sqlMapGenerated(GeneratedXmlFile sqlMap, IntrospectedTable introspectedTable) {
sqlMap.setMergeable(false);
return super.sqlMapGenerated(sqlMap, introspectedTable);
}
}
补充知识:老司机学习MyBatis之如何通过select返回List
一、案例
当要查询的结果不是单个记录而是一个集合的时候,MyBatis的resultType写的依然是集合中的对象的类型名称,例如:
该查询语句,查出的是所有用户数据,注意resultType里面写的依然是集合中的对象的类型名称。
不能写成java.util.List,否则查询会报错,下面我们演示一下这种情况:
修改XML文件:
控制台打印报错信息:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.UnsupportedOperationException
### The error may exist in UserMapper.xml
### The error may involve com.queen.mybatis.mapper.UserMapper.getAllUsers
### The error occurred while handling results
### SQL: select id, loginId, userName, role, note from t_user
### Cause: java.lang.UnsupportedOperationException
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:111)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102)
写成java.util.List直接抛出了异常。
以上这篇mybatis generator只能生成insert和selectAll的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持考高分网。



