前面學習MyBatis的運行原理,剛學完,回頭想一想仍是很是複雜的,也由於以前沒有這樣去分析過源碼,因此這一節算是卡住了,可能會花必定的時間,爲了避免卡住學習進度,因此咱們繼續學習,後面再寫插件。html
一、我首先告訴你官方網站地址:MyBatis Generatorjava
二、前面在寫測試的時候,就發現了這個問題,要寫 dao
、 model
、 mpper
,這在寫項目的時候顯得是非痛苦,那怎麼解決這個問題呢?——答案就是: mybatis generator
。git
三、從第2點就知道了,MyBatis generator的主要做用就是建立 dao
、 model
、 mpper
。github
一、添加依賴api
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator</artifactId> <version>1.3.6</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> </dependency>
二、編寫 generatorConfig.xml
mybatis
爲了順利完成這個文件的編寫,咱們參考官網的 XML Configuration Reference 部分進行編寫。app
另外建議經過搜索引擎編寫的更加完美,或者本身想要的。maven
三、目錄ide
(由於我用了git,因此紅色的不是錯誤)學習
四、Running MyBatis Generator
在這裏 Running MyBatis Generator ,你能夠找到各類運行方式。
若是你是經過搜索引擎的話,可能會找到相似這樣的命令
java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite
若是你是看開源項目的話,你會在pom.xml
看到如下代碼:
<project ...> ... <build> ... <plugins> ... <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> ... </plugins> ... </build> ... </project>
不論哪一種,你均可以在官網找到用法說明。
那麼咱們怎麼用呢?
package com.fengwenyi.demo.mybatis.generatorconfig; import org.junit.Test; 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; import java.io.File; import java.util.ArrayList; import java.util.List; /** * @author Wenyi Feng */ public class RunGenerator { @Test public void test () { try { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("src/main/resources/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); } catch (Exception e) { e.printStackTrace(); } } }
咱們來看一下效果:
一、掃描dao,兩種解決方法,掃描dao下全部的mapper接口,或者掃描指定的接口。
二、編寫測試代碼:
@Autowired private CityMapper cityMapper; @Test public void testCity () { List<City> cities = cityMapper.selectByExample(null); for (City city : cities) System.out.println(city); }
看下測試結果:
到這裏就差很少了,寫點後記
一、你能夠參考本節代碼(generator-config),就會很方便的生成你要相關文件和代碼。
二、若是你在前面的MyBatis的基礎部分(例如 Dynamic SQL ),你能夠參考 Mapper.xml
文件進行學習。
三、本節測試代碼: generator-config