學習ssm項目整合的童鞋,推薦一個尚硅谷的視頻教程,整的很不錯。如下是我的在學習mybatis逆向工程時的記錄。html
使用mybatis時須要,java
1.對應數據庫表字段的java實體類(也叫做bean?或者是pojo?)mysql
2.dao層的接口,有多少張表就有多少個接口,每一個接口對應一張數據表的操做,好比增刪改查;通常,dao層只是寫接口,不寫具體的實現,具體的操做實現要麼寫與之對應的接口實現類,要麼在mapper配置文件中實現。sql
3.mapper配置文件,在mybatis中使用的是xml文件來實現接口定義的數據庫的操做;其餘的也有手寫接口實現類的。數據庫
三個層次結構大體以下:(固然,這是已經使用mybatis generator自動生成後的目錄了)apache
由於是在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>
接着就是要寫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>
大概的配置已經差很少了,那麼要怎樣運行生成呢?官方給出的有幾種方法: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的實例函數及詳解