1. 程式人生 > >mybatis逆向工程(附原始碼)

mybatis逆向工程(附原始碼)

原始碼github下載地址:https://github.com/wcyong/mybatisGeneratorCustom.git

原始碼百度雲盤下載地址:連結: https://pan.baidu.com/s/1czwasu 密碼: nc9w

mybaits需要程式設計師自己編寫sql語句,mybatis官方提供逆向工程 可以針對單表自動生成mybatis執行所需要的程式碼(mapper.java,mapper.xml、pojo等)
有了sql表的結構後, 我們就可以利用逆向工程直接生成相應的Dao和JavaBean程式碼, 這樣能夠大大減少我們平時開發的工作量.

需要下載的包:


所有的東西在原始碼裡邊都有。

首先我們建立一個java工程(mybatis-generator),然後匯入mybatis的相關jar包和上面提到的工具包。然後編寫用於生成相關類的配置檔案:
generatorConfig.xml

裡邊的標籤有不懂的參考MyBatis Generator 詳解:http://blog.csdn.net/weixin_38009266/article/details/77865230

<?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>
	<!-- context元素用於指定生成一組物件的環境。targetRuntime:此屬性用於指定生成的程式碼的執行時環境。MyBatis3:*這是預設值*-->
	<context id="testTables" targetRuntime="MyBatis3">
		<commentGenerator>
			<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://139.224.33.12:3308/bingstardata?allowMultiQueries=true" userId="root"
			password="123456">
		</jdbcConnection>
		<!-- 如使用oracle請參考如下 -->
		<!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
			connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:orcl" 
			userId="scott"
			password="wcy675600920">
		</jdbcConnection> -->

		<!-- 預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer,為 true時把JDBC DECIMAL 和 
			NUMERIC 型別解析為java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- targetProject:生成PO類的位置 -->
		<javaModelGenerator targetPackage="org.wcy.gen.model"
			targetProject=".\src">
			<!-- enableSubPackages:是否讓schema作為包的字尾 -->
			<property name="enableSubPackages" value="false" />
			<!-- 從資料庫返回的值被清理前後的空格 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
        <!-- targetProject:mapper對映檔案生成的位置 -->
		<sqlMapGenerator targetPackage="org.wcy.gen.mapper" 
			targetProject=".\src">
			<!-- enableSubPackages:是否讓schema作為包的字尾 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		<!-- targetPackage:mapper介面生成的位置 -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="org.wcy.gen.mapper" 
			targetProject=".\src">
			<!-- enableSubPackages:是否讓schema作為包的字尾 -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		
		<!-- 指定資料庫表 -->
		<table tableName="role" schema="" enableCountByExample="false"
				enableDeleteByExample="false" enableUpdateByExample="false"
				enableSelectByExample="false" selectByExampleQueryId="false"></table>
				
		<table tableName="goods" schema="" enableCountByExample="false"
				enableDeleteByExample="false" enableUpdateByExample="false"
				enableSelectByExample="false" selectByExampleQueryId="false"></table>
		<!-- 有些表的欄位需要指定java型別
		 <table schema="" tableName="">
			<columnOverride column="" javaType="" />
		</table> -->
	</context>
</generatorConfiguration>

編寫一個工具類生成相關程式碼:
GeneratorSqlmap.java
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GeneratorSqlmap {

	public void generator() throws Exception{

		List<String> warnings = new ArrayList<String>();
		boolean overwrite = true;
		//指定 逆向工程配置檔案
		File configFile = new File("generatorConfig.xml"); 
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(configFile);
		DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
				callback, warnings);
		myBatisGenerator.generate(null);

	} 
	public static void main(String[] args) throws Exception {
		try {
			GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
			generatorSqlmap.generator();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}

配置檔案log4j.properties:
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
整個目錄結構是這樣的:



generatorConfig.xml檔案裡,把資料庫連線改成自己的資料庫名,賬號,密碼。

同時把一塊的tableName改成自己的表名,然後執行,重新整理後就可以看見生成的po類,對映檔案和介面。


相關推薦

mybatis逆向工程原始碼

原始碼github下載地址:https://github.com/wcyong/mybatisGeneratorCustom.git 原始碼百度雲盤下載地址:連結: https://pan.baidu.com/s/1czwasu 密碼: nc9w mybaits需要程式設計

Mybatis逆向工程填坑

在MyBatis逆向工程的過程中出現錯誤: Mon Sep 25 11:22:05 CST 2017 WARN: Establishing SSL connection without server'

MyBatis逆向工程生成程式碼原始碼

什麼是逆向工程 MyBatis逆向工程可以方便的從資料庫中將表自動對映到JAVA POJO類,並同時生成Mapper.xml和Mapper介面,方便實用。 MyBatis的一個主要的特點就是需要程式設計

Spring Boot 初級入門教程十七 —— 通過 Oracle 資料庫測試已整合 MyBatis原始碼

在文章《Spring Boot 初級入門教程(十五) —— 整合 MyBatis》中,已經對 MyBatis 進行了整合,只是當時是連 MySQL 資料庫進行的測試。這一篇簡單通過 Oracle 資料庫進行測試,確保整合的 MyBatis 在連線 Oracle 資料庫時也是有效的。 一、新增

Spring Boot MyBatis配置Druid多資料來源原始碼

Spring Boot MyBatis配置Druid多資料來源 回顧在Spring中配置MyBatis SqlSessionFactory的配置: <!-- mybatis 的SqlSessionFactory --> <bean id="sqlSessionF

Spring Boot中使用MyBatis原始碼

Spring Boot中使用MyBatis 整合MyBatis之前,先搭建一個基本的Spring Boot專案開啟Spring Boot。然後引入mybatis-spring-boot-starter和資料庫連線驅動(這裡使用關係型資料庫Oracle 11g) 關係型mysql:

Mybatis逆向工程生成pojo和mapper

安裝Mybatis外掛 https://blog.csdn.net/qq_38002337/article/details/79440215 Mybatis逆向工程(生成pojo和mapper) https://blog.csdn.net/opera95/article

mybatis逆向工程命令生成法

Mybatis的逆向工程 新建一個工程 導包 建立geniotor.xml檔案 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration

Maven+Mybatis+Spring+SpringMVC實現oracle分頁查詢原始碼

關於專案搭建,小寶鴿以前寫過一篇Spirng+SpringMVC+Maven+Mybatis+MySQL專案搭建,這篇文章提供了詳細的搭建過程,而且提供了原始碼下載,接下來的將在這個原始碼的基礎上繼續開發。所以建議各位猿友可以把猿友下載一下。 二、分頁外掛的介紹 博主採用的外掛是PageHelpe

IDEA+SSM+mybatis-generator+自動生成mybatis程式碼原始碼

專案結構generatorConfig.xml檔案<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//

機器學習專案的例項分析設計原始碼

摘要說明: 最近在學習“Hands-On Machine Learning with Scikit-Learn &TensorFlow”,其中一些機器學習的思考和處理方式很具有專案級開發的特點。我在原文提供的例項基礎上,結合自己的分析,模擬了一個機器學習專案的分析和實現過程,包括專

mysql 使用 limit 實現底層分頁原始碼

原理解析: <select id="queryProductList" resultType="com.pojo.Product"> SELECT * FROM tb_product ORDER BY priority DESC LIMIT #{rowIndex},#{p

使用高德地圖微信小程式SDK開發案例-輸入提示原始碼

閒來無事寫一篇使用高德地圖的微信小程式SDK開發應用的例項。 接下來先看需求: 我們要做的是,根據使用者輸入的關鍵詞,給出相應的提示資訊,列表中顯示地方的名稱,地方的詳細地址以及對應的經緯度座標。 當然在UI上我們儘量做到理想的視覺與較好的使用者體驗。 最終的效果我們希望是像這樣的,

乾貨原始碼 | 爬取一萬條b站評論,分析9.7分的新番憑啥這麼火?

7月番《工作細胞》最終話在十一前放出。這部動漫在b站上評分高達9.7。除了口碑之外,熱度也居高不下,更值得關注的是連很多平時不關注動漫的小夥伴也加入了追番大軍。這次我們的目標是爬取b站上的所有短評進行分析,用資料說明為什麼這部動漫會如此受歡迎。 01 工作細胞 《工作細胞》

CVPR論文《100+ Times FasterWeighted Median Filter (WMF)》的實現和解析(附原始碼)。 任意半徑中值濾波擴充套件至百分比濾波器O(1)時間複雜度演算法的原理、實現及效果 任意半徑中值濾波擴充套件至百分比濾波器O(1)時間複雜度演算法的原理、實現及

  四年前第一次看到《100+ Times FasterWeighted Median Filter (WMF)》一文時,因為他附帶了原始碼,而且還是CVPR論文,因此,當時也對程式碼進行了一定的整理和解讀,但是當時覺得這個演算法雖然對原始速度有不少的提高,但是還是比較慢。因此,沒有怎麼在意,這幾天有幾位朋友

Java程式設計師從笨鳥到菜鳥之八十二細談Spring十一深入理解spring+struts2整合原始碼

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Flutter | Json自動反序列化——json_serializable原始碼 【3】

轉載自:https://www.jianshu.com/p/b307a377c5e8   前言 Google推出flutter這樣一個新的高效能跨平臺(Android,ios)快速開發框架之後,被業界許多開發者所關注。我在接觸了flutter之後發現這個確實是一個好東西,好東西

俄羅斯方塊實驗報告原始碼

C++面向物件程式綜合設計 一、基本要求 1、綜合實驗設計可採取一人一設計,也可以組成小組,每組成員(不得超過4人)分工合作完成一個設計,每個人的任務不同。 2、要求利用面向物件程式設計方法以及C++的程式設計思想來完成系統的設計。 3、要求有選單、檔案操作,資料使用陣列、結構體等均可,鍵盤

安卓識別身份證,自動提取身份證資訊功能實現原始碼

原始碼下載地址:注:原始碼裡沒有騰訊優圖的賬號需要填寫自己的 下載地址 先講幾下.首先我們需要去騰訊優圖申請一個賬號,因為身份證識別需要用到第三方介面如圖所示 我申請的是掃描身份證,當然還有其他的功能,比如掃描銀行卡,營業執照,車牌等等  ,大家可以去研究一下

python實現Excel檔案讀取的程式原始碼

python實現Excel檔案讀取的程式   前一段時間幫一個朋友用python寫了一個讀Excel程式操作的程式,具體要求為:讀取兩個Excel檔案,根據其中某個特徵的特徵值對這兩個檔案進行取交集操作,生成三個Excel檔案,第一個Excel檔案為這兩個檔案的公