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生成model和dao層程式碼
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生成中文註釋,支援oracle和mysql(通過修改原始碼的方式來實現)
在看本篇之前,最好先看一下上一篇通過實現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) # 零、一級快取和二級快取的流程 > 以這裡的查詢語句為例。 ## 一級快取總結 -