Eclipse Marketplace 二、 創(chuàng)建generatorConfig.xml配置文..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spring Boot + Mybatis + Spring MVC環(huán)境配置(二):Mybatis Generator配置

發(fā)布時(shí)間:2020-08-05 00:13:08 來源:ITPUB博客 閱讀:158 作者:hky87 欄目:編程語(yǔ)言

一、在Eclipse中安裝mybatis generator

     菜單選擇: Help->Eclipse Marketplace

Spring Boot + Mybatis + Spring MVC環(huán)境配置(二):Mybatis Generator配置


二、 創(chuàng)建generatorConfig.xml配置文檔

Spring Boot + Mybatis + Spring MVC環(huán)境配置(二):Mybatis Generator配置

配置好的generatorConfig.xml文件內(nèi)容:

<?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>
	<!--加載屬性文件 -->
	<properties resource="application.properties" />
	<!-- context:生成一組對(duì)象的環(huán)境 id:必選,上下文id,用于在生成錯(cuò)誤時(shí)提示 defaultModelType:指定生成對(duì)象的樣式 
		1,conditional:類似hierarchical; 2,flat:所有內(nèi)容(主鍵,blob)等全部生成在一個(gè)對(duì)象中; 3,hierarchical:主鍵生成一個(gè)XXKey對(duì)象(key 
		class),Blob等單獨(dú)生成一個(gè)對(duì)象,其他簡(jiǎn)單屬性在一個(gè)對(duì)象中(record class) targetRuntime: 1,MyBatis3:默認(rèn)的值,生成基于MyBatis3.x以上版本的內(nèi)容,包括XXXBySample; 
		2,MyBatis3Simple:類似MyBatis3,只是不生成XXXBySample; introspectedColumnImpl:類全限定名,用于擴(kuò)展MBG -->
	<context id="context1" defaultModelType="hierarchical"
		targetRuntime="MyBatis3Simple">
		<!-- 自動(dòng)識(shí)別數(shù)據(jù)庫(kù)關(guān)鍵字,默認(rèn)false,如果設(shè)置為true,根據(jù)SqlReservedWords中定義的關(guān)鍵字列表; 一般保留默認(rèn)值,遇到數(shù)據(jù)庫(kù)關(guān)鍵字(Java關(guān)鍵字),使用columnOverride覆蓋 -->
		<property name="autoDelimitKeywords" value="false" />
		<!-- 生成的Java文件的編碼 -->
		<property name="javaFileEncoding" value="UTF-8" />
		<!-- 格式化java代碼 -->
		<property name="javaFormatter"
			value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
		<!-- 格式化XML代碼 -->
		<property name="xmlFormatter"
			value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />
		<!-- beginningDelimiter和endingDelimiter:指明數(shù)據(jù)庫(kù)的用于標(biāo)記數(shù)據(jù)庫(kù)對(duì)象名的符號(hào),比如ORACLE就是雙引號(hào),MYSQL默認(rèn)是`反引號(hào); -->
		<property name="beginningDelimiter" value="`" />
		<property name="endingDelimiter" value="`" />
		<!-- 實(shí)現(xiàn)自定義的代碼生成器plugin -->
		<!-- <plugin type="org.mybatis.PaginationPlugin" /> -->
		<commentGenerator>
			<property name="suppressDate" value="true" />
			<!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!-- 數(shù)據(jù)庫(kù)連接URL,用戶名,密碼 -->
		<jdbcConnection
			driverClass="${spring.datasource.driver-class-name}"
			connectionURL="${spring.datasource.url}"
			userId="${spring.datasource.username}"
			password="${spring.datasource.password}">
			<property name="nullCatalogMeansCurrent" value="true" />
		</jdbcConnection>
		<!-- java類型處理器 用于處理DB中的類型到Java中的類型,默認(rèn)使用JavaTypeResolverDefaultImpl; 注意一點(diǎn),默認(rèn)會(huì)先嘗試使用Integer,Long,Short等來對(duì)應(yīng)DECIMAL和 
			NUMERIC數(shù)據(jù)類型; -->
		<javaTypeResolver
			type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
			<!-- true:使用BigDecimal對(duì)應(yīng)DECIMAL和 NUMERIC數(shù)據(jù)類型 false:默認(rèn), scale>0;length>18:使用BigDecimal; 
				scale=0;length[10,18]:使用Long; scale=0;length[5,9]:使用Integer; scale=0;length<5:使用Short; -->
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>
		<!--生成模型的包名和位置 -->
		<javaModelGenerator
			targetPackage="com.kai.demo.model" targetProject="demo/src/main/java">
			<!-- for MyBatis3/MyBatis3Simple 自動(dòng)為每一個(gè)生成的類創(chuàng)建一個(gè)構(gòu)造方法,構(gòu)造方法包含了所有的field;而不是使用setter; -->
			<property name="constructorBased" value="false" />
		</javaModelGenerator>
		<!--映射文件的包名和位置 -->
		<sqlMapGenerator targetPackage="com.kai.demo.mapper"
			targetProject="demo/src/main/java" />
		<!--DAO的包名和位置 -->
		<javaClientGenerator
			targetPackage="com.kai.demo.dao" targetProject="demo/src/main/java"
			type="XMLMAPPER">
			<!-- 是否允許建立子包,對(duì)應(yīng)Mysql的Schema -->
			<property name="enableSubPackages" value="true" />
		</javaClientGenerator>
		<!--要生成哪些表 -->
		<table schema="mybatis" tableName="%"
			enableSelectByExample="false" enableDeleteByExample="false"
			enableCountByExample="false" enableUpdateByExample="false"
			selectByExampleQueryId="false">
		</table>
	</context>
</generatorConfiguration>

(我也不知道為什么itpub的xml片段插入之后,結(jié)尾會(huì)多了點(diǎn),正確的xml幾位應(yīng)該是)

Spring Boot + Mybatis + Spring MVC環(huán)境配置(二):Mybatis Generator配置

選中g(shù)eneratorConfig.xml文件,右鍵菜單Run As->Run Mybatis Generator  生成Model、Dao、Mapper

Spring Boot + Mybatis + Spring MVC環(huán)境配置(二):Mybatis Generator配置

創(chuàng)建User表的SQL:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `nickname` varchar(50) DEFAULT NULL,
  `regtime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;


四、對(duì)UserMapper進(jìn)行單元測(cè)試

在項(xiàng)目的src/test/java下創(chuàng)建類文件UserMapperTest.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
	
	@Autowired
	private UserMapper userMapper;
	
	@Test
	public void testQuery() throws Exception {		
		User user = userMapper.selectByPrimaryKey(1);
		System.out.println(user.toString());
	}
}

右鍵Run As->JUnit Test Spring Boot + Mybatis + Spring MVC環(huán)境配置(二):Mybatis Generator配置


完整環(huán)境下載地址: https://github.com/CatherineHu/Spring-Boot-Mybatis-MVC  

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI