最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年09月27日 10:23:26   作者:xqnode  
這篇文章主要介紹了mybatis generator只能生成insert和selectAll的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

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

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

我的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:\iflytek\maven\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar"/>

 <context id="MysqlTables" 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對應(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ǔ)充知識:老司機(jī)學(xué)習(xí)MyBatis之如何通過select返回List

一、案例

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

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

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

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

修改XML文件:

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

控制臺打印報(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.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的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • swagger文檔增強(qiáng)工具knife4j使用圖文詳解

    swagger文檔增強(qiáng)工具knife4j使用圖文詳解

    這篇文章主要介紹了swagger文檔增強(qiáng)工具knife4j使用詳解,想要使用knife4j非常簡單,只要在Springboot項(xiàng)目中引入knife4j的依賴即可,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Spring Data Jpa 自動生成表結(jié)構(gòu)的方法示例

    Spring Data Jpa 自動生成表結(jié)構(gòu)的方法示例

    這篇文章主要介紹了Spring Data Jpa 自動生成表結(jié)構(gòu)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring中ApplicationContextAware的使用方法詳解

    Spring中ApplicationContextAware的使用方法詳解

    ApplicationContextAware?通過它Spring容器會自動把上下文環(huán)境對象調(diào)用ApplicationContextAware接口中的setApplicationContext方法,這篇文章主要介紹了Spring中ApplicationContextAware的作用,需要的朋友可以參考下
    2023-03-03
  • 如何獲取包下所有類中的注解的值(java工具類)

    如何獲取包下所有類中的注解的值(java工具類)

    這篇文章主要介紹了如何獲取包下所有類中的注解的值 (java工具類),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot集成Memcached的項(xiàng)目實(shí)踐

    SpringBoot集成Memcached的項(xiàng)目實(shí)踐

    Memcached是一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載,本文主要介紹了SpringBoot集成Memcached的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Spring攔截器HandlerInterceptor接口代碼解析

    Spring攔截器HandlerInterceptor接口代碼解析

    這篇文章主要介紹了Spring攔截器HandlerInterceptor接口代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • IDEA項(xiàng)目如何實(shí)現(xiàn)打jar包

    IDEA項(xiàng)目如何實(shí)現(xiàn)打jar包

    這篇文章主要介紹了IDEA項(xiàng)目如何實(shí)現(xiàn)打jar包問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 如何使用IDEA完成登錄與注冊功能

    如何使用IDEA完成登錄與注冊功能

    這篇文章主要介紹了如何使用IDEA完成登錄與注冊功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • java利用jacob將word轉(zhuǎn)pdf

    java利用jacob將word轉(zhuǎn)pdf

    這篇文章主要為大家詳細(xì)介紹了java利用jacob將word轉(zhuǎn)pdf,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • LIS 最長遞增子序列 Java的簡單實(shí)現(xiàn)

    LIS 最長遞增子序列 Java的簡單實(shí)現(xiàn)

    下面小編就為大家?guī)硪黄狶IS 最長遞增子序列 Java的簡單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論

新巴尔虎左旗| 永嘉县| 开江县| 北川| 九龙城区| 兴仁县| 本溪| 贡嘎县| 巴里| 华池县| 兴山县| 镶黄旗| 剑河县| 洛南县| 锡林浩特市| 女性| 育儿| 隆尧县| 花垣县| 永平县| 毕节市| 康马县| 衡山县| 佛教| 尚志市| 小金县| 平安县| 同德县| 博爱县| 衡山县| 灵丘县| 广河县| 临泉县| 凤城市| 鹿泉市| 贡嘎县| 东港市| 醴陵市| 白山市| 伊宁市| 民县|