日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis最入门---代码自动生成(generatorConfig.xml配置)

發布時間:2024/9/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis最入门---代码自动生成(generatorConfig.xml配置) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[一步是咫尺,一步即天涯]

經過前文的敘述,各位看官是不是已經被Mybatis的強大功能給折服了呢?本文我們將介紹一個能夠極大提升我們開發效率的插件:即代碼自動生成。這里的代碼自動生成包括,與數據庫一一對應的實體對象,Mapper基本結構文件,與Mapper對應的基本接口文件。本文,我們只介紹這個插件的基本用法,更多內容,就請讀者先自行學習吧。

準備工作:

a.操作系統?:win7 x64

b.基本軟件:MySQL,Mybatis,SQLyog

-------------------------------------------------------------------------------------------------------------------------------------

第一種方式:通過Main方法執行配置文件。

-------------------------------------------------------------------------------------------------------------------------------------

1.創建本文我們將使用的工程Mybatis13,工程結構圖如下:【重點文件我們給出,其他配置文件請讀者參考前文工程】

2.修改jdbc.properties文件,具體內容如下:

[plain]?view plaincopy
  • jdbc.driverClassName=com.mysql.jdbc.Driver??
  • jdbc.url=jdbc:mysql://localhost:3306/mybatis??
  • jdbc.username=root??
  • jdbc.password=1234??
  • 3.修改log4j.properties,具體內容如下:

    [plain]?view plaincopy
  • log4j.rootLogger=debug,stdout??
  • log4j.appender.stdout=org.apache.log4j.ConsoleAppender??
  • log4j.appender.stdout.layout=org.apache.log4j.PatternLayout??
  • log4j.appender.stdout.layout.ConversionPattern=%5p?[%t]?-?%m%n??
  • 4.修改mbgConfiguration.xml,具體內容如下:

    [java]?view plaincopy
  • <?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="jdbc.properties"?/>????
  • ????<context?id="sqlserverTables"?targetRuntime="MyBatis3">????
  • ????????<!--?生成的pojo,將implements?Serializable-->????
  • ????????<plugin?type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>????
  • ????????<commentGenerator>????
  • ????????????<!--?是否去除自動生成的注釋?true:是?:?false:否?-->????
  • ????????????<property?name="suppressAllComments"?value="true"?/>????
  • ????????</commentGenerator>????
  • ????
  • ????????<!--?數據庫鏈接URL、用戶名、密碼?-->????
  • ????????<jdbcConnection?driverClass="${jdbc.driverClassName}"????
  • ????????????????????????connectionURL="${jdbc.url}"????
  • ????????????????????????userId="${jdbc.username}"????
  • ????????????????????????password="${jdbc.password}">????
  • ????????</jdbcConnection>????
  • ????
  • ????????<!--??????
  • ????????默認false,把JDBC?DECIMAL?和?NUMERIC?類型解析為?Integer????
  • ????????????true,把JDBC?DECIMAL?和?NUMERIC?類型解析為java.math.BigDecimal??????
  • ????????-->????
  • ????????<javaTypeResolver>????
  • ????????????<property?name="forceBigDecimals"?value="false"?/>????
  • ????????</javaTypeResolver>????
  • ????
  • ????????<!--?????
  • ????????生成model模型,對應的包路徑,以及文件存放路徑(targetProject),targetProject可以指定具體的路徑,如./src/main/java,????
  • ????????也可以使用“MAVEN”來自動生成,這樣生成的代碼會在target/generatord-source目錄下????
  • ????????-->????
  • ????????<!--<javaModelGenerator?targetPackage="com.joey.mybaties.test.pojo"?targetProject="MAVEN">-->????
  • ????????<javaModelGenerator?targetPackage="com.csdn.ingo.entity"?targetProject="./src/main/java">????
  • ????????????<property?name="enableSubPackages"?value="true"/>????
  • ????????????<!--?從數據庫返回的值被清理前后的空格??-->????
  • ????????????<property?name="trimStrings"?value="true"?/>????
  • ????????</javaModelGenerator>????
  • ????
  • ????????<!--對應的mapper.xml文件??-->????
  • ????????<sqlMapGenerator?targetPackage="mappers"?targetProject="./src/main/resources">????
  • ????????????<property?name="enableSubPackages"?value="true"/>????
  • ????????</sqlMapGenerator>????
  • ????
  • ????????<!--?對應的Mapper接口類文件?-->????
  • ????????<javaClientGenerator?type="XMLMAPPER"?targetPackage="com.csdn.ingo.dao"?targetProject="./src/main/java">????
  • ????????????<property?name="enableSubPackages"?value="true"/>????
  • ????????</javaClientGenerator>????
  • ????
  • ????
  • ????????<!--?列出要生成代碼的所有表,這里配置的是不生成Example文件?-->????
  • ????????<table?tableName="userinfo"?domainObjectName="UserInfoPO"????
  • ???????????????enableCountByExample="false"?enableUpdateByExample="false"?enableDeleteByExample="false"????
  • ???????????????enableSelectByExample="false"?selectByExampleQueryId="false"?>????
  • ????????????<property?name="useActualColumnNames"?value="false"/>????
  • ????????</table>????
  • ????</context>????
  • </generatorConfiguration>??????
  • 5.修改GenMain.java文件,具體內容如下:

    [java]?view plaincopy
  • package?com.csdn.ingo.main;??
  • ??
  • import?java.io.File;??
  • import?java.io.IOException;??
  • import?java.sql.SQLException;??
  • 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.exception.InvalidConfigurationException;??
  • import?org.mybatis.generator.exception.XMLParserException;??
  • import?org.mybatis.generator.internal.DefaultShellCallback;??
  • ??
  • public?class?GenMain?{??
  • ????public?static?void?main(String[]?args)?{??
  • ????????List<String>?warnings?=?new?ArrayList<String>();??
  • ????????boolean?overwrite?=?true;??
  • ????????String?genCfg?=?"/mbgConfiguration.xml";??
  • ????????File?configFile?=?new?File(GenMain.class.getResource(genCfg).getFile());??
  • ????????ConfigurationParser?cp?=?new?ConfigurationParser(warnings);??
  • ????????Configuration?config?=?null;??
  • ????????try?{??
  • ????????????config?=?cp.parseConfiguration(configFile);??
  • ????????}?catch?(IOException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}?catch?(XMLParserException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}??
  • ????????DefaultShellCallback?callback?=?new?DefaultShellCallback(overwrite);??
  • ????????MyBatisGenerator?myBatisGenerator?=?null;??
  • ????????try?{??
  • ????????????myBatisGenerator?=?new?MyBatisGenerator(config,?callback,?warnings);??
  • ????????}?catch?(InvalidConfigurationException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}??
  • ????????try?{??
  • ????????????myBatisGenerator.generate(null);??
  • ????????}?catch?(SQLException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}?catch?(IOException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}?catch?(InterruptedException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}??
  • ????}??
  • }??
  • 6.測試方法:運行main方法,然后刷新工程即可。正常情況下:控制臺能夠看到如下輸出,刷新工程后項目列表也能夠看到填充文件的變化。


    --------------------------------------------------------------------------------------------------------------------------------------------------------

    在上面的mbgConfiguration.xml文件中,我們在給出一份更加詳細的官方配置地址供讀者參考,如下:

    【英文版】http://www.mybatis.org/generator/configreference/xmlconfig.html

    【中文版】http://generator.sturgeon.mopaas.com/configreference/table.html

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    第二種方式:通過Maven插件運行。

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    上面我們的工程是通過maven構建的,mybatis generator中也包含了一個可以集成到Maven的插件,具體做法如下:

    1.修改pom.xml文件如下:

    [html]?view plaincopy
  • <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.java.mybatis</groupId>??
  • ????<artifactId>mybatis13</artifactId>??
  • ????<version>0.0.1-SNAPSHOT</version>??
  • ????<packaging>jar</packaging>??
  • ??
  • ????<name>mybatis13</name>??
  • ????<url>http://maven.apache.org</url>??
  • ??
  • ????<properties>??
  • ????????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>??
  • ????</properties>??
  • ??
  • ????<dependencies>??
  • ????????<dependency>??
  • ????????????<groupId>junit</groupId>??
  • ????????????<artifactId>junit</artifactId>??
  • ????????????<version>4.12</version>??
  • ????????????<scope>test</scope>??
  • ????????</dependency>??
  • ????????<dependency>??
  • ????????????<groupId>org.mybatis</groupId>??
  • ????????????<artifactId>mybatis</artifactId>??
  • ????????????<version>3.3.1</version>??
  • ????????</dependency>??
  • ????????<dependency>??
  • ????????????<groupId>mysql</groupId>??
  • ????????????<artifactId>mysql-connector-java</artifactId>??
  • ????????????<version>5.1.26</version>??
  • ????????</dependency>??
  • ????????<dependency>??
  • ????????????<groupId>org.mybatis.generator</groupId>??
  • ????????????<artifactId>mybatis-generator-core</artifactId>??
  • ????????????<version>1.3.2</version>??
  • ????????</dependency>??
  • ????????<dependency>??
  • ????????????<groupId>log4j</groupId>??
  • ????????????<artifactId>log4j</artifactId>??
  • ????????????<version>1.2.17</version>??
  • ????????</dependency>??
  • ????</dependencies>??
  • ????<build>??
  • ????????<plugins>??
  • ????????????<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>??
  • 2.在默認情況下,MBG的配置文件的名稱為generatorConfig.xml,并且與上文不同的是,這里需要指明數據庫連接器的絕對路徑。修改之后的配置文件如下:

    [html]?view plaincopy
  • <?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="C:/Users/yyg/Desktop/DevTool/DevTool/repository/Maven/Maven3.2.2/local/repo/mysql/mysql-connector-java/5.1.26/mysql-connector-java-5.1.26.jar"?/>??
  • ????????<context?id="sqlserverTables"?targetRuntime="MyBatis3">??
  • ????????????<!--?生成的pojo,將implements?Serializable?-->??
  • ????????????<plugin?type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>??
  • ????????????<commentGenerator>??
  • ????????????????<!--?是否去除自動生成的注釋?true:是?:?false:否?-->??
  • ????????????????<property?name="suppressAllComments"?value="true"?/>??
  • ????????????</commentGenerator>??
  • ??
  • ????????????<!--?數據庫鏈接URL、用戶名、密碼?-->??
  • ????????????<jdbcConnection?driverClass="com.mysql.jdbc.Driver"??
  • ????????????????connectionURL="jdbc:mysql://localhost:3306/mybatis"?userId="root"?password="1234">??
  • ????????????</jdbcConnection>??
  • ??
  • ????????????<!--?默認false,把JDBC?DECIMAL?和?NUMERIC?類型解析為?Integer?true,把JDBC?DECIMAL???
  • ????????????????和?NUMERIC?類型解析為java.math.BigDecimal?-->??
  • ????????????<javaTypeResolver>??
  • ????????????????<property?name="forceBigDecimals"?value="false"?/>??
  • ????????????</javaTypeResolver>??
  • ??
  • ????????????<!--?生成model模型,對應的包路徑,以及文件存放路徑(targetProject),targetProject可以指定具體的路徑,如./src/main/java,???
  • ????????????????也可以使用“MAVEN”來自動生成,這樣生成的代碼會在target/generatord-source目錄下?-->??
  • ????????????<!--<javaModelGenerator?targetPackage="com.joey.mybaties.test.pojo"?targetProject="MAVEN">?-->??
  • ????????????<javaModelGenerator?targetPackage="com.csdn.ingo.entity"??
  • ????????????????targetProject="./src/main/java">??
  • ????????????????<property?name="enableSubPackages"?value="true"?/>??
  • ????????????????<!--?從數據庫返回的值被清理前后的空格?-->??
  • ????????????????<property?name="trimStrings"?value="true"?/>??
  • ????????????</javaModelGenerator>??
  • ??
  • ????????????<!--對應的mapper.xml文件?-->??
  • ????????????<sqlMapGenerator?targetPackage="mappers"??
  • ????????????????targetProject="./src/main/resources">??
  • ????????????????<property?name="enableSubPackages"?value="true"?/>??
  • ????????????</sqlMapGenerator>??
  • ??
  • ????????????<!--?對應的Mapper接口類文件?-->??
  • ????????????<javaClientGenerator?type="XMLMAPPER"??
  • ????????????????targetPackage="com.csdn.ingo.dao"?targetProject="./src/main/java">??
  • ????????????????<property?name="enableSubPackages"?value="true"?/>??
  • ????????????</javaClientGenerator>??
  • ??
  • ??
  • ????????????<!--?列出要生成代碼的所有表,這里配置的是不生成Example文件?-->??
  • ????????????<table?tableName="userinfo"?domainObjectName="UserInfoPO"??
  • ????????????????enableCountByExample="false"?enableUpdateByExample="false"??
  • ????????????????enableDeleteByExample="false"?enableSelectByExample="false"??
  • ????????????????selectByExampleQueryId="false">??
  • ????????????????<property?name="useActualColumnNames"?value="false"?/>??
  • ????????????</table>??
  • ????????</context>??
  • ????</generatorConfiguration>??????

  • 3.運行方法:在eclipse 中,選擇pom.xml文件,擊右鍵先擇Run AS——>Maven Build… ——>在Goals框中輸入:mybatis-generator:generate

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    對比上面兩種方式,博主更加傾向于第一種方式,其main方法每次保持不變,xml配置文件中,也不用關心jdbc配置,每次使用時只需要修改其他關鍵配置項即可。另外,按照官方文檔,我們還能夠使用命令行,ant等方式實現上述同樣的效果。這里博主只列出這兩種方式的示例,更多內容請讀者自行實現。

    最后,在給出一個小建議:在建表時,字段名稱建議用"_"分隔多個單詞,比如:AWB_NO、REC_ID...,這樣生成的entity,屬性名稱就會變成漂亮的駝峰命名,即:awbNo、recId

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    至此,Mybatis最入門---代碼自動生成(GeneratorCOnfig.xml配置)結束


    參考資料:

    官方文檔:

    http://www.jianshu.com/p/e09d2370b796

    http://www.cnblogs.com/yjmyzz/p/4210554.html

    總結

    以上是生活随笔為你收集整理的Mybatis最入门---代码自动生成(generatorConfig.xml配置)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。