国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

mybatis generator只能生成insert和selectAll的操作

瀏覽:11日期:2023-10-22 13:40:24

一般出現(xiàn)這個(gè)情況的時(shí)候,怎么辦?

第一步:不要慌,保持冷靜的思考和清醒的頭腦,這很關(guān)鍵!

第二步:打開瀏覽器,搜索一下:Cannot obtain primary key information from the database, generated objects may be incomplete這個(gè)錯(cuò)誤,

遇到這種情況的時(shí)候,代碼生成器就只會(huì)生成insert和selectAll這兩個(gè)方法,這個(gè)時(shí)候需要在jdbc配置的connectionURL上加上一個(gè)參數(shù):nullCatalogMeansCurrent=true。然后重新執(zhí)行代碼生成器,就可以看到其他的方法都出現(xiàn)了。

mybatis generator只能生成insert和selectAll的操作

我的generatorConfig.xml配置如下(注意看connectionURL配置):

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE generatorConfiguration PUBLIC '-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN' 'http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd'><generatorConfiguration> <classPathEntry location='D:iflytekmavenrepositorymysqlmysql-connector-java8.0.15mysql-connector-java-8.0.15.jar'/> <context targetRuntime='MyBatis3Simple' defaultModelType='flat'> <property name='autoDelimitKeywords' value='true'/> <property name='javaFileEncoding' value='utf-8'/> <property name='beginningDelimiter' value='`'/> <property name='endingDelimiter' value='`'/> <!--覆蓋xml文件--> <plugin type='com.xqnode.boot.util.OverwriteXmlPlugin'/> <!-- 注釋 --> <commentGenerator type='com.xqnode.boot.util.CommentGenerator'> <property name='suppressAllComments' value='true'/><!-- 是否取消注釋 --> </commentGenerator> <!-- jdbc連接 --> <jdbcConnection driverClass='com.mysql.cj.jdbc.Driver' connectionURL='jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&amp;nullCatalogMeansCurrent=true' userId='root' password='123456'/> <!-- 類型轉(zhuǎn)換 --> <javaTypeResolver> <property name='forceBigDecimals' value='false'/> </javaTypeResolver> <!-- 生成實(shí)體類地址 --> <javaModelGenerator targetPackage='com.xqnode.boot.model' targetProject='src/main/java'> <property name='enableSubPackages' value='false'/> <property name='trimStrings' value='true'/> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage='mapper' targetProject='src/main/resources'> <property name='enableSubPackages' value='false'/> </sqlMapGenerator> <!-- 生成mapxml對(duì)應(yīng)client,也就是接口dao --> <javaClientGenerator targetPackage='com.xqnode.boot.dao' targetProject='src/main/java'type='XMLMAPPER'> <property name='enableSubPackages' value='false'/> </javaClientGenerator> <table tableName='t_user' domainObjectName='User' mapperName='UserMapper' /> </context></generatorConfiguration>

這里面有我的兩個(gè)代碼插件:

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;/** * 生成model中,字段增加注釋 */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('/**'); field.addJavaDocLine(' * ' + 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;/** * @version 1.0.0 */public class OverwriteXmlPlugin extends PluginAdapter { @Override public boolean validate(List<String> warnings) { return true; } @Override public boolean sqlMapGenerated(GeneratedXmlFile sqlMap, IntrospectedTable introspectedTable) { sqlMap.setMergeable(false); return super.sqlMapGenerated(sqlMap, introspectedTable); }}

補(bǔ)充知識(shí):老司機(jī)學(xué)習(xí)MyBatis之如何通過select返回List

一、案例

當(dāng)要查詢的結(jié)果不是單個(gè)記錄而是一個(gè)集合的時(shí)候,MyBatis的resultType寫的依然是集合中的對(duì)象的類型名稱,例如:

<select resultType='com.queen.mybatis.bean.User'> select id, loginId, userName, role, note from t_user</select>

該查詢語句,查出的是所有用戶數(shù)據(jù),注意resultType里面寫的依然是集合中的對(duì)象的類型名稱。

不能寫成java.util.List,否則查詢會(huì)報(bào)錯(cuò),下面我們演示一下這種情況:

修改XML文件:

<select resultType='java.util.List'> select id, loginId, userName, role, note from t_user</select>

控制臺(tái)打印報(bào)錯(cuò)信息:

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.UnsupportedOperationExceptionat 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的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Mybatis 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 亚洲国产影视 | 国产一级毛片大陆 | 亚洲精品综合欧美一区二区三区 | 久久在线视频 | 久久精品免费在线观看 | 一级毛片免费观看久 | 国产禁女女网站免费看 | 午夜影院h | 欧美精品久久久久久久影视 | 国产精品国产三级国产专区5o | 久草免费资源视频 | 久久99国产乱子伦精品免费 | 日本免费视频观看在线播放 | 国产日韩欧美swag在线观看 | 亚洲国产精品免费 | 男女乱淫真视频免费观看 | 小明台湾成人永久免费看看 | 手机在线播放视频 | 日本特黄a级高清免费酷网 日本特黄特色 | 亚洲久久天堂 | 在线观看国产精成人品 | 欧美极度极度另类 | 最新福利片v国产片 | 亚洲精品第一第二区 | 欧美在线高清视频播放免费 | 一本不卡| 久久semm亚洲国产 | 精品一区二区三区四区在线 | 国产精品亚洲欧美一级久久精品 | 国产一区三区二区中文在线 | 在线播放成人高清免费视频 | 国产乱肥老妇精品视频 | 欧美精品午夜 | 精品乱人伦一区二区 | 久久一区二区三区99 | 特黄特黄一级高清免费大片 | 久草青草 | 最新国产精品视频免费看 | 岛国搬运工最新网地址 | 久久国内精品自在自线400部o | 欧美日韩一区二区三区视视频 |