1. 程式人生 > >Mybatis-generator原始碼學習和修改

Mybatis-generator原始碼學習和修改

MyBatis Generator 快速入門指南

啟動說明

java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite

原始碼方式:執行ShellRunner檔案

聯絡人:Nick 953374957

原始碼修改記錄

修改記錄:

1、Mapper.xml空格改成四個空格
修改詳情:

org.mybatis.generator.api.dom.OutputUtilities

mybatis-generator 裡面我覺得首先最應該改的就是 OutputUtilities 這個類,它裡面有個 xmlIndent 方法是用來控制生成的 xml 檔案中空格的縮排,預設是兩個空格
但四個空格對於我們來說已經深入骨髓了,所以必須改。 在 sb.append
( " " ) 裡面增加兩個空格就可以了。 2、修改dao包下的名稱,由原來的XXXMapper改成XXXDao 修改詳情: org.mybatis.generator.api.IntrospectedTable calculateJavaClientAttributes方法(大概820行) sb.append("Mapper");註釋掉改成 sb.append("Dao"); 3、修改Mybatis的Model生成JavaDoc註釋內容: 1)generatorConfig.xml配置裡面設定成:<property name="suppressAllComments" value="false"
/> 程式碼修改詳情: org.mybatis.generator.internal.DefaultCommentGenerator裡面的添加註釋程式碼去掉,改成 ------------------------------ code start ---------------------------------------- field.addJavaDocLine("/**"); field.addJavaDocLine(" * @Fields "+field.getName()+" "+introspectedColumn.getRemarks()); field.addJavaDocLine
(" */"); ------------------------------ code end --------------------------------------------- 4、org.mybatis.generator.internal.DefaultCommentGenerator修改XXXDao.java(XXXMapper.java)的介面方法的Javadoc註釋 搜尋org.mybatis.generator.internal.DefaultCommentGenerator如下方法,並註釋方法裡面內容, public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) 改成: method.addJavaDocLine("/**"); method.addJavaDocLine(" * @Title " + method.getName()); for (Parameter parameter : method.getParameters()) { method.addJavaDocLine(" * @param " + parameter.getName()); } String returnType = method.getReturnType().toString(); returnType = returnType.lastIndexOf(".") != -1 ? returnType.substring(returnType.lastIndexOf(".") + 1) : returnType; method.addJavaDocLine(" * @return " + returnType); method.addJavaDocLine(" */"); 5、註釋掉Model裡面Getter和Setter方法的註釋,根據需要自己加上配置 搜尋org.mybatis.generator.internal.DefaultCommentGenerator如下方法: public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) 6、註釋掉Mapper.xml裡面的<!-- 註釋 -->,實際使用未用到 搜尋org.mybatis.generator.internal.DefaultCommentGenerator如下方法: public void addComment(XmlElement xmlElement) 7、XML裡面每個SQL增加一個換行 org.mybatis.generator.api.dom.xml.XmlElement裡面getFormattedContent裡面加上: if(indentLevel == 1) { //每個insert/update/select之間插入一個空行 OutputUtilities.newLine(sb); } 8、修改mybatis的mapper.xml檔案裡面insert和update不根據欄位判斷的非動態SQL org.mybatis.generator.codegen.mybatis3.xmlmapper.XMLMapperGenerator 裡面的getSqlMapElement方法 註釋掉: addInsertElement(answer); addUpdateByPrimaryKeyWithoutBLOBsElement(answer); 對應的是mapper.xml裡面的 <insert id="insert" parameterType="xxx" ></insert> <update id="updateByPrimaryKey" parameterType="xxx" ></update>

原始碼修改之後,使用說明


<property name="suppressAllComments" value="false"/>配置生成註釋,預設註釋已經修改
javaModelGenerator裡面targetProject可以配置非src,以便於區分原始碼和業務程式碼,如:targetProject="target"
table裡面配置整合的父類可用,該屬性也可以再javaModelGenerator裡面配置公用
<property name="rootClass" value="xxx.BaseModel"/>
table裡面配置插入返回主鍵配置<generatedKey column="id" sqlStatement="MySql" identity="true"/>

相關推薦

Mybatis-generator原始碼學習修改

MyBatis Generator 快速入門指南 啟動說明 java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite 原始

Mybatis-generator原始碼修改修改xmlmapper生成原始碼

需求: 專案使用了mybatis,想要防止xss,但是不想在後臺去做html程式碼的轉義工作,因為牽扯太多,所以就想著在資料庫層面來做這個事兒。 解決辦法: 1.在mysql新增一個自定義函式來轉義html程式碼 2.修改mybatis-generato

MyBatis Generator元件學習(反向生成) - 20181126

一.引言 MyBatis-Plus(簡稱MP)是MyBatis增強工具,在原來基礎上不做改變,為簡化開發、提高效率而生。 MyBatis Generator 是MyBatis 官方出品的一款,用來自動生成MyBatis的 mapper、dao、entity 的框架,讓我們省

mybatis-generator原始碼解讀系列(三):配置讀取

概述:        配置讀取是程式碼生成的基礎工作,主要就是把xml中的元資料讀取到記憶體中,供後面的程式碼生成邏輯使用相關類1、ConfigurationParser功能        主要用來將xml配置檔案讀取到記憶體,獲取根節點,根據根節點的屬性值,選擇對應的子節點

mybatis-generator生成modeldao層程式碼

1、建立資料夾myibatisGen 2、下載mybatis-generator-core-1.3.1.jar或者其它版本的jar包,到myibatisGen資料夾下 3、為生成程式碼建立配置檔案“generatorConfig.xml” 4、生成程式碼        ja

Darknet 原始碼學習非常詳細的中文註釋(絕對經典)

https://pjreddie.com/darknet/ 用於人臉表情端到端系統的重訓練 附錄1: darknet深度學習框架原始碼分析:詳細中文註釋,涵蓋框架原理與實現語法分析 https://github.com/hgpvision/da

Mybatis Generator的model生成中文註釋,支援oraclemysql(通過修改原始碼的方式來實現)

在看本篇之前,最好先看一下上一篇通過實現CommentGenerator介面的方法來實現中文註釋的例子,因為很多操作和上一篇基本是一致的,所以本篇可能不那麼詳細. 首先說一下上篇通過實現CommentGenerator介面的一些不足,畢竟只是實現了CommentGenerator介面,在裡面的方法再怎麼改,

Mybatis generator生成Service,Controller,新增批量新增資料介面(基於mybatis-generator-1.3.5原始碼修改)

    好久記錄筆記,這段時間做政府的專案,資料錄入系統基本都是通過excel匯入,且資料量大,許多也是單表的錄入,這就有很多可以通用的程式碼,如controller,service層的那一套都是可以程式碼生成,添加了一個數據庫批量新增介面(目前只支援oracle), 程式碼是基於mybatis-gener

mybatis generator為實體類生成自定義註釋(讀取資料庫欄位的註釋新增到實體類,不修改原始碼

我們都知道mybatis generator自動生成的註釋沒什麼實際作用,而且還增加了程式碼量。如果能將註釋從資料庫中撈取到,不僅能很大程度上增加程式碼的可讀性,而且減少了後期手動加註釋的工作量。 1、首先定義註釋生成外掛 package com.cmbc.datapla

修改mybatis-generator中資料庫型別Java型別的對映關係

離你越近的地方,路途越遠;最簡單的音調,需要最艱苦的練習。——《泰戈爾詩選》 1、修改型別對映關係 在專案中,為了降低資料的儲存空間,status狀態欄位一般使用tinyint, 1個tinyint型資料只佔用一個位元組,一個int型資料佔用四個位

mybatis generator 自定義類名(修改mybatis-generator-1.3.2原始碼改dao類名)

網上找了一大堆的例子,感覺這個比較全,比較細,就是寫的比較多,如果想看詳細的,請看下面的連結,自動忽略我的: http://www.blogjava.net/bolo/archive/2015/03/20/423683.html 本篇只寫手頭只有一個eclipse的情況下(

mybatis學習筆記(六)使用generator生成mybatis基礎配置程式碼目錄結構

建立maven專案 <span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0"

mybatis-generator-修改原始碼生成自己想要的程式碼

前言 雖然mybatis-generator能生成dao,mapper,xml等檔案,但是生成的程式碼也不是完全通用,所以這裡我們要的mybatis-generator-core原始碼進行修改。 場景 1.生成自己想要的註釋 /** * 使用者資訊

Mybatis-generator修改原始碼實現自定義方法,返回List物件(三)

前兩篇文章我們講了如何獲取原始碼即建立工程、修改原始碼為dao(mapper)層新增一個方法,那麼這一篇,我們來講如何在xml新增這個方法所需要sql 3、實現XML檔案新增Dao(Mapper)層的實現 前面有講過,下圖中的兩個包,分別是管理dao(M

mybatis原始碼學習之執行過程分析(2)——config.xml配置檔案mapper.xml對映檔案解析過程

在上一篇中跟蹤了SqlSessionFactory及SqlSession的建立過程。這一篇,主要跟蹤Mapper介面和XML檔案對映及獲取。 1.xml檔案的解析 1.1Mybatis-config.xml的解析 在SqlSessionFactor

Mybatis-generator修改原始碼實現自定義方法,返回List物件(二)

上一篇我們講了如何獲取Mybatis-generator的原始碼和建立工程,以及通過main方法來生成XML、實體類、mapper檔案,這一篇我們來講通過修改程式碼來為mapper新增一個方法 2、組合原始碼中的示例,實現Dao(Mapper)層新增一個

Mybatis-generator修改原始碼實現自定義方法,返回List物件(一)

Mybatis-generator修改原始碼實現自定義方法,返回Lsit物件——第一篇 本文結合網上的諸多教程,詳細介紹通過修改Mybatis-generator的原始碼, 在自動生成dao層和XML檔案時,新增一個返回List的方法,資料庫使用Mysql

MyBatis Generator系列(三)----修改原始碼實現中文註釋

1)匯入原始碼 再新建一個Maven專案,然後把mybatis-generator-core-1.3.5解壓,複製org目錄到eclipse中去,完整的專案如下: 此時,專案有可能會報錯,因為有依賴包沒有引入,缺少log4j和ant包,在pom.xml中新增上依賴,順

Mybatis 原始碼學習(二) Mapper 介面sql的對映

問題:xml中的sql語句是怎麼被對映到Mapper介面的一個方法上的?弄明白了mapper是如何註冊的了以後,發現xml檔案中的namespace是關鍵。實際還是去找那個java介面檔案。那麼找到了介面檔案,註冊了mapper那這個mapper又是怎麼反過來找到xml中配置

mybatis原始碼學習:一級快取二級快取分析

[toc] 前文傳送門:[mybatis原始碼學習:從SqlSessionFactory到代理物件的生成](https://www.cnblogs.com/summerday152/p/12773121.html) # 零、一級快取和二級快取的流程 > 以這裡的查詢語句為例。 ## 一級快取總結 -