Eclipse maven項目中使用mybatis逆向工程

學習ssm項目整合的童鞋,推薦一個尚硅谷的視頻教程,整的很不錯。如下是我的在學習mybatis逆向工程時的記錄。html

使用mybatis時須要,java

1.對應數據庫表字段的java實體類(也叫做bean?或者是pojo?)mysql

2.dao層的接口,有多少張表就有多少個接口,每一個接口對應一張數據表的操做,好比增刪改查;通常,dao層只是寫接口,不寫具體的實現,具體的操做實現要麼寫與之對應的接口實現類,要麼在mapper配置文件中實現。sql

3.mapper配置文件,在mybatis中使用的是xml文件來實現接口定義的數據庫的操做;其餘的也有手寫接口實現類的。數據庫

三個層次結構大體以下:(固然,這是已經使用mybatis generator自動生成後的目錄了)apache

 

 

MyBatis Generator官方文檔

 

由於是在maven項目中,因此先在pom.xml文件中引入相關的依賴,下面的配置文件中有一些多餘的部分。api

 1 <project xmlns="http://maven.apache.org/POM/4.0.0"
 2  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <groupId>com.example.mbgs</groupId>
 6     <artifactId>mbgenerator</artifactId>
 7     <packaging>war</packaging>
 8     <version>0.0.1-SNAPSHOT</version>
 9     <name>mbgenerator Maven Webapp</name>
10     <url>http://maven.apache.org</url>
11 
12 
13     <dependencies>
14         <dependency>
15             <groupId>junit</groupId>
16             <artifactId>junit</artifactId>
17             <version>3.8.1</version>
18             <scope>test</scope>
19         </dependency>
20 
21         <!-- Mybatis -->
22         <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
23         <dependency>
24             <groupId>org.mybatis</groupId>
25             <artifactId>mybatis</artifactId>
26             <version>3.4.2</version>
27         </dependency>
28 
29         <!-- 數據庫鏈接池以及驅動 -->
30         <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
31         <dependency>
32             <groupId>com.mchange</groupId>
33             <artifactId>c3p0</artifactId>
34             <version>0.9.5.2</version>
35         </dependency>
36 
37         <!-- MySql Connector -->
38         <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
39         <dependency>
40             <groupId>mysql</groupId>
41             <artifactId>mysql-connector-java</artifactId>
42             <version>8.0.13</version>
43         </dependency>
44 
45         <!-- JSTL 等 -->
46         <!-- https://mvnrepository.com/artifact/jstl/jstl -->
47         <dependency>
48             <groupId>jstl</groupId>
49             <artifactId>jstl</artifactId>
50             <version>1.2</version>
51         </dependency>
52 
53         <!-- MBG -->
54         <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
55         <dependency>
56             <groupId>org.mybatis.generator</groupId>
57             <artifactId>mybatis-generator-core</artifactId>
58             <version>1.3.5</version>
59         </dependency>
60 
61     </dependencies>
62 
63 
64     <build>
65         <!-- java編譯插件 -->
66         <!-- eclipse默認使用的jdk是1.5的 -->
67         <plugins>
68             <plugin>
69                 <groupId>org.apache.maven.plugins</groupId>
70                 <artifactId>maven-compiler-plugin</artifactId>
71                 <version>3.2</version>
72                 <configuration>
73                     <source>1.8</source>
74                     <target>1.8</target>
75                     <encoding>UTF-8</encoding>
76                 </configuration>
77             </plugin>
78         </plugins>
79     </build>
80 </project>
View Code

 

接着就是要寫Mybatis Generator的配置文件了,在項目的直接目錄下新建一個xml文件,命名無所謂,以後參考官方給出的xml配置實例來寫mybatis

相關配置標籤及其左右均可以在文檔左側查找,或者點擊這裏app

 

具體的配置以下(只是部分配置,備註有相關的說明)dom

mbg.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>

    <context id="DB2Tables" targetRuntime="MyBatis3">

        <!-- 配置生成的實體類的註釋問題,設置爲true不生成 ,若是不設置的話會默認生成不少的註釋-->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        
        <!-- 配置鏈接數據庫,注意下面的driverClass,不一樣版本的數據庫驅動不一樣的 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ssm_curd" userId="root" password="root">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 指定javabean的生成位置 -->
        <javaModelGenerator targetPackage="com.example.curd.bean" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 指定sql映射文件的生成位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>


        <!-- 指定dao接口生成的位置,mapper接口,targetPackage是預生成的包,targetProject是目錄 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.curd.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>


        <!-- table指定每一個表的生成策略 ,後面的domainObjectName是前面的tableName表要生成的javaBean的名字-->
        <table tableName="tbl_emp" domainObjectName="Employee">
        </table>
        <table tableName="tbl_dept" domainObjectName="Department">
        </table>

    </context>
</generatorConfiguration>
View Code

 

大概的配置已經差很少了,那麼要怎樣運行生成呢?官方給出的有幾種方法:Running MyBatis Generator ,

此處使用的是java program 和xml的方法

新建一個java類,內容以下:

package com.example.curd.test; 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 MBGTest { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); //你的mybatis generator 配置文件名 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); } }

 

寫完後run as java application就能夠了,若是成功的話,控制檯是看不到輸出信息的,接着刷新一下項目,就能夠看到自動生成的內容了。

 

至於生成的各個文件及其做用請看MyBatis的Mapper接口以及Example的實例函數及詳解

相關文章
相關標籤/搜索