天天看點

springboot項目中使用mybatis逆向工程生成代碼執行個體

第一次寫部落格,權當是對自己學習的記錄!!!

開發工具
         eclipse
 資料庫mysql
           

1 先簡單說一下eclipse中如何使用mybatis的逆向工程來快速生成代碼

利用eclipse搭建springboot項目的前提是eclipse安裝了Spring插件,具體如下:help–>eclipse marketplace 在也頁面中輸入Spring搜尋後install目前插件并重新開機eclipse

2 在建立springboot項目的時候,選擇

springboot項目中使用mybatis逆向工程生成代碼執行個體
點選finish完成項目建立
           
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.kyrie</groupId>
	<artifactId>mybatis-generator</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>mybatis-generator</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!-- mybatis-generator  插件 -->
			<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
			
		</plugins>
	</build>

</project>

           

在項目的pom.xml檔案中引入mybatis的generator插件

3 下面配置兩個重要的配置檔案,

① 第一個是springboot項目的全局變量:application.yml

在配置application.yml檔案的時候需要注意冒号後面的空格

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver  //mysql資料庫驅動
    url: jdbc:mysql://127.0.0.1:3306/newtest   //資料庫名
    username: root
    password: root
server:
  port: 8081
#mybatis的配置
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.kyrie.matx.entity

           

② 第二個重要的配置檔案是generator的配置檔案generatorConfig.xml

該配置檔案中配置代碼生成的具體政策,詳細資訊如下:

<?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.yml" />
    <!-- mysql驅動的位置 這個是MySQL連接配接的jar包,你需要指定你自己計算機上的jar包的位置-->
    <classPathEntry location="C:/Users/tengxiao.ma/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar" />
    <context id="Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否生成注釋代時間戳 -->
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的注釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!-- JDBC連接配接 其中connectionURL後面的newtest改為你建立的資料庫,緊跟在後面是資料庫連接配接的賬戶和密碼-->
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/newtest"
                userId="root"
                password="root">
        </jdbcConnection>

        <!-- 非必需,類型處理器,在資料庫類型和java類型之間的轉換控制-->
        <!-- 預設false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和
         NUMERIC 類型解析為java.math.BigDecimal -->
        <javaTypeResolver>
            <!-- 是否使用bigDecimal, false可自動轉化以下類型(Long, Integer, Short, etc.) -->
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成實體類位址 這裡需要你改動,其中targetPackage需要根據你自己建立的目錄進行改動 -->
        <javaModelGenerator targetPackage="com.kyrie.matx.entity" targetProject="src/main/java">
            <!-- 從資料庫傳回的值被清理前後的空格 -->
            <property name="trimStrings" value="true" />
            <!-- enableSubPackages:是否讓schema作為包的字尾 -->
            <property name="enableSubPackages" value="false" />
        </javaModelGenerator>

        <!-- 生成mapper xml檔案 這裡不需要改動 -->
        <sqlMapGenerator targetPackage="mapper"  targetProject="src/main/resources">
            <!-- enableSubPackages:是否讓schema作為包的字尾 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成mapper xml對應Client   這裡需要改動targetPackage,依據你自己的工程-->
        <javaClientGenerator targetPackage="com.kyrie.matx.dao" targetProject="src/main/java" type="XMLMAPPER">
            <!-- enableSubPackages:是否讓schema作為包的字尾 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 配置表資訊 -->
        <!-- schema即為資料庫名 tableName為對應的資料庫表 domainObjectName是要生成的實體類 enable*ByExample
            是否生成 example類   個人覺得生成那麼多的example類很繁瑣,是以設定為false-->

        <table schema="newtest" tableName="category"
               domainObjectName="Category" enableCountByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false">
        </table>

        <table schema="newtest" tableName="product"
               domainObjectName="Product" enableCountByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false">
        </table>
    </context>
</generatorConfiguration>

           

4 運作generator,完成代碼的自動生成

右擊項目名:Run as–>maven build,在Goals:mybatis-generator:generate 如下

springboot項目中使用mybatis逆向工程生成代碼執行個體

apply–>run

5

springboot項目中使用mybatis逆向工程生成代碼執行個體

運作結果如下表示代碼生成成功,但是在目前的頁面是看不到的,需要删除項目(不要删除工作空間的項目),之後import這個maven項目

6 完成這一系列工作之後,項目的具體結構如下:

springboot項目中使用mybatis逆向工程生成代碼執行個體

繼續閱讀