Maven是什麼?
當你利用搜索引擎搜索Maven會出來很多名詞:對象模型、標準集合、依賴管理系統這是啥啊?差不多得你會用了Maven纔會理解這些名稱吧,我找到了一個博主的博客
blog.csdn.net/qq_27376871/article/details/51612742他做了不錯的總結,Maven可以幹什麼:
1 . 幫你下載jar包
maven項目會有一個 pom.xml文件, 在這個文件裏面,只要你添加相應配置,他就會自動幫你下載相應jar包,不用你鋪天蓋地的到處搜索你需要的jar包了 。maven都會通過:項目名-項目模塊-項目版本來maven在互聯網上的代碼庫中下載相應jar包。尋找jar的地址:http://search.maven.org
所以這就是maven的功能之一,幫你下載jar包
2 . 尋找依賴,幫你下載依賴
尋找jar包是第一基本功能,尋找依賴在這個是在這個基礎上的功能。
在maven的代碼庫中,每一個jar包也有自己的 pom.xml文件,而這個文件裏面也會有<dependency>配置,什麼依賴範圍我就不細說了,我想表達的就是,只要你配置的jar包所依賴的其他jar包都會被maven自動下載下來。
例如:你配置了
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.6</version> </dependency>
你需要maven幫你下載spring-core-3.6.jar包 ,而這個jar包裏面需要用到commons-logging.jar這個包, 這叫就依賴,spring-core-3.6.jar依賴於commons-logging.jar。 這就是maven第二個作用,幫你下載依賴包。
3 . 熱部署,熱編譯
意思就是,在你web項目已經運行的時候,修改代碼的能直接被web服務器所接受,就不需要你 重啓服務器了,或者重新部署代碼了,而且你可以直接通過maven 打包war或者jar項目。
搭建
1. 創建Maven工程
2. 設置GroupId
3. 控制檯打印:BUILD SUCCESS 創建成功
4. 自己創建resource目錄
注:通過右鍵->Mark directory As來設置文件爲源碼目錄或者資源目錄(即更改文件夾得顏色)
5. 配置pom.xml
<?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> <groupId>com.generator</groupId> <artifactId>generator</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <build> <finalName>mybatis_generator</finalName> <plugins> <!--mybatis反向生成代碼的插件配置--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.3</version> </plugin> </plugins> </build> </project>
給出的pox.xml是用來配置依賴和插件的配置文件,記住上方<plugin>標籤中配置了mybatis generator的插件,IDE會自動幫我們下載。
6. 創建存放pojo、mapper等所在包
注意:上方Mappers、dao、pojo包是空的
7. 配置generatorConfig.xml
在src/main/resource目錄下創建generatorConfig.xml配置文件,這個文件用來做mapper、pojo生成位置、數據庫相關等配置,具體看代碼註釋。
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> <!-- 數據庫驅動包位置 --> <classPathEntry location="D:\mysql-jar\mysql-connector-java-5.1.35.jar" /> <context id="mysql" targetRuntime="MyBatis3" defaultModelType="flat"> <!-- 爲了防止生成的代碼中有很多註釋,比較難看,加入下面的配置控制 --> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="suppressDate" value="true"/> </commentGenerator> <!-- 必須要有的,使用這個配置鏈接數據庫,url、密碼等 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="rootadmin"> <!-- 這裏面可以設置property屬性,每一個property屬性都設置到配置的Driver上 --> <property name="useUnicode" value="true"/> <property name="characterEncoding" value="UTF-8"/> </jdbcConnection> <javaModelGenerator targetPackage="com.generator.pojo" targetProject="D:\文檔\項目\Generator\src\main\java"> <property name="constructorBased" value="false"/> <!-- 在targetPackage的基礎上,根據數據庫的schema再生成一層package,最終生成的類放在這個package下,默認爲false --> <property name="enableSubPackages" value="true" /> <!-- for MyBatis3 / MyBatis3Simple 是否創建一個不可變的類,如果爲true, 那麼MBG會創建一個沒有setter方法的類,取而代之的是類似constructorBased的類 --> <property name="immutable" value="false"/> <!-- 設置是否在getter方法中,對String類型字段調用trim()方法 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成SQL map的XML文件生成器, 注意,在Mybatis3之後,我們可以使用mapper.xml文件+Mapper接口(或者不用mapper接口), 或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的話,這個元素就必須配置 targetPackage/targetProject:同javaModelGenerator --> <sqlMapGenerator targetPackage="Mappers" targetProject="D:\文檔\項目\Generator\src\main\resources"> <!-- 在targetPackage的基礎上,根據數據庫的schema再生成一層package,最終生成的類放在這個package下,默認爲false --> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- dao包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.generator.dao" targetProject="D:\文檔\項目\Generator\src\main\java"> <!-- 在targetPackage的基礎上,根據數據庫的schema再生成一層package,最終生成的類放在這個package下,默認爲false --> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 表配置 --> <table tableName="user" domainObjectName="User" > <!-- 參考 javaModelGenerator 的 constructorBased屬性--> <property name="constructorBased" value="false"/> <!-- 默認爲false,如果設置爲true,在生成的SQL中,table名字不會加上catalog或schema; --> <property name="ignoreQualifiersAtRuntime" value="false"/> <!-- 指定是否只生成domain類,如果設置爲true,只生成domain類,如果還配置了sqlMapGenerator,那麼在mapper XML文件中,只生成resultMap元素 --> <property name="modelOnly" value="false"/> <!-- 如果設置爲true,生成的model類會直接使用column本身的名字,而不會再使用駝峯命名方法,比如BORN_DATE,生成的屬性名字就是BORN_DATE,而不會是bornDate --> <property name="useActualColumnNames" value="true"/> </table> </context> </generatorConfiguration>
對於上面的配置文件都已經做了註釋,簡單提取出來可以總結爲下方几條,只需要正確配置,便可以完成逆向工程的功能:
- classPathEntry 配置數據庫驅動包位置
- commentGenerator下配置是否去掉註釋
- jdbcConnection數據庫鏈接URL、用戶名、密碼
- javaModelGenerator生成模型的包名和位置
- sqlMapGenerator生成映射文件包名和位置
- javaClientGenerator生成DAO的包名和位置
- table要生成哪些表
當然上方generatorConfig.xml僅僅是簡單配置,還有很多配置參數沒有給出,我有一份比較詳細的配置,每一條配置都做了非常詳細註釋,比如下圖:
我把上面這份非常詳細註釋的配置文件放到公衆號,你可以讀完本文中在公衆號內回覆:「generatorConfig.xml」就可以獲取了,以後配置看不懂,讀這個配置文件的註釋就可以了。
8. 運行插件
9. 在右側欄Maven Project->plugin->mybatis-generator
10. 雙擊mybatis-generator:generate 運行
11. 運行結果
控制檯打印出:BUILD SUCCESS 證明成功
發現pojo、dao、Mappers包多出了自動生成的代碼
12. 查看生成的代碼
在com.generator.dao包生成了相關接口,和Mappers中的mapper相對應
在com.generator.user包中根據數據庫表生成了對應的實體類
UserMapper.xml中生成了對user表進行增刪改查的簡單SQL
到這裏我們關於mybati-generator的使用介紹的差不多了,非常基礎,相信對剛剛學習這門技術的同學來說是不錯的指導。