乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MyBatis Generator 感覺是市場上最好用的代碼生成方式

       昵稱34195792 2019-05-16

      其實MyBatis Generator并不需要spring boot環(huán)境,只需要自己寫一個main方法運行即可。本文主要介紹使用maven插件的方式。

      注:本文采用的MyBatis Generator版本為:1.3.6

      一、MyBatis Generator介紹

      MyBatis Generator,縮寫MBG,是一個Mybatis和iBatis的代碼生成器。它支持Mybatis的所有版本,支持iBatis 2.2.0以后的版本。通過MyBatis Generator可以根據(jù)數(shù)據(jù)庫表生成相應的實體、sql映射文件、Dao等,能應付簡單的CRUD(Create, Retrieve, Update, Delete),對于連接查詢或存儲過程等還是要手動編寫sql和對象。

      MyBatis Generator將生成以下內(nèi)容:

      與表結(jié)構(gòu)匹配的Java POJO。這可能包括:

      一個關于表主鍵的類(如果表有主鍵)

      一個關于表非主鍵字段的類(BLOB字段除外)

      一個包含表BLOB字段的類(如果表有BLOB字段)

      一個支持動態(tài)查詢、修改和刪除的類

      MyBatis或iBATIS兼容的SQL映射XML文件。MBG為配置中指定的每個表的簡單CRUD函數(shù)生成SQL,生成的SQL語句包括:

      插入

      通過主鍵更新

      通過動態(tài)where子句更新

      通過主鍵刪除

      通過動態(tài)where子句刪除

      通過主鍵查詢

      通過動態(tài)where子句查詢

      通過動態(tài)where子句查詢條數(shù)

      注意:上面的內(nèi)容并不一定全部生成,比如:如果表沒有主鍵,則不會生成通過主鍵刪除等sql。

      適合使用上述對象的Java類,Java類的生成是可選的。MBG將為MyBatis 3.X生成以下類型的Java類:

      與MyBatis 3.x映射器基礎結(jié)構(gòu)配合使用的映射器接口

      MBG將為iBATIS 2.x生成以下類型的Java類:

      符合Spring框架的DAO

      只使用iBATIS SQL映射API的DAO。這些DAO可以通過兩種方式生成:通過構(gòu)造函數(shù)或setter注入來提供SqlMapClient。

      符合iBATIS DAO框架的DAO(這是iBATIS的一個可選部分,此框架已被棄用,所以建議改用Spring框架)

      在迭代開發(fā)過程中使用MyBatis Generator的注意事項:

      如果存在與新生成的XML文件具有相同名稱的現(xiàn)有文件,MBG將自動合并XML文件,合并時,MBG不會覆蓋你在XML文件中添加的任何內(nèi)容。你可以重復生成而不用擔心丟失XML文件中你添加的內(nèi)容,MBG只替換通過MBG生成的任何XML元素。

      MBG不會合并Java文件,它可以覆蓋現(xiàn)有文件或使用不同的唯一名稱保存新生成的文件(文件名后加1、2、3等序號)。如果重復生成可以選擇自動覆蓋替換或手動合并更改。

      二、引入MyBatis Generator的maven插件

      在pom.xml里添加以下內(nèi)容:

      <build>

      <plugins>

      <!--mybatis自動生成代碼插件-->

      <plugin>

      <groupId>org.mybatis.generator</groupId>

      <artifactId>mybatis-generator-maven-plugin</artifactId>

      <version>1.3.6</version>

      <configuration>

      <!-- 是否覆蓋,true表示會替換生成的JAVA文件,false則不覆蓋 -->

      <overwrite>true</overwrite>

      </configuration>

      <dependencies>

      <!--mysql驅(qū)動包-->

      <dependency>

      <groupId>mysql</groupId>

      <artifactId>mysql-connector-java</artifactId>

      <version>5.1.45</version>

      </dependency>

      </dependencies>

      </plugin>

      </plugins>

      </build>

      三、最小的MyBatis Generator配置文件

      MyBatis Generator為我們默認好很多配置,我們只需要很少量的配置即可,下面展示一下最小量的配置(只生成POJO)。

      既然要根據(jù)表來生成,所以肯定要連數(shù)據(jù)庫,所以傳說中的四個參數(shù)必不可少,我們需要通過jdbcConnection來告訴MBG數(shù)據(jù)庫連接地址,另外表名也是必不可少的,MBG至少需要知道這兩個信息才能為我們干活。所以,最小的配置如下所示:

      generatorConfig.xml內(nèi)容如下:

      <?xml version='1.0' encoding='UTF-8'?>

      <!DOCTYPE generatorConfiguration

      PUBLIC '-////DTD MyBatis Generator Configuration 1.0//EN'

      'http:///dtd/mybatis-generator-config_1_0.dtd'>

      <generatorConfiguration>

      <context id='MySql'>

      <jdbcConnection

      driverClass='com.mysql.jdbc.Driver'

      connectionURL='jdbc:mysql://localhost:3306/springboot'

      userId='root'

      password='root'/>

      <javaModelGenerator targetPackage='com.songguoliang.springboot.entity' targetProject='src/main/java'></javaModelGenerator>

      <table tableName='tbl_user'></table>

      </context>

      </generatorConfiguration>

      這里只生成POJO實體,并且放到com.songguoliang.springboot.entity包下,運行maven插件:

      可以看到,我們的實體已經(jīng)生成:

      四、MyBatis Generator常規(guī)配置

      上面我們了解怎么用MyBatis Generator的maven插件來生成代碼,上面只是生成了POJO,我們可能還想生成映射文件,dao接口文件等,先把generatorConfig.xml配置文件復制備份為generatorConfig-min.xml。

      修改后的配置文件內(nèi)容:

      <?xml version='1.0' encoding='UTF-8'?>

      <!DOCTYPE generatorConfiguration

      PUBLIC '-////DTD MyBatis Generator Configuration 1.0//EN'

      'http:///dtd/mybatis-generator-config_1_0.dtd'>

      <generatorConfiguration>

      <!-- defaultModelType='flat' 設置復合主鍵時不單獨為主鍵創(chuàng)建實體 -->

      <context id='MySql' defaultModelType='flat'>

      <!-- 生成的POJO實現(xiàn)java.io.Serializable接口 -->

      <plugin type='org.mybatis.generator.plugins.SerializablePlugin' />

      <!--注釋-->

      <commentGenerator>

      <!-- 將數(shù)據(jù)庫中表的字段描述信息添加到注釋 -->

      <property name='addRemarkComments' value='true'/>

      <!-- 注釋里不添加日期 -->

      <property name='suppressDate' value='true'/>

      </commentGenerator>

      <!-- 數(shù)據(jù)庫連接 -->

      <jdbcConnection

      driverClass='com.mysql.jdbc.Driver'

      connectionURL='jdbc:mysql://localhost:3306/springboot'

      userId='root'

      password='root'/>

      <!-- 生成POJO對象,并將類放到com.songguoliang.springboot.entity包下 -->

      <javaModelGenerator targetPackage='com.songguoliang.springboot.entity' targetProject='src/main/java'></javaModelGenerator>

      <!-- 生成mapper xml文件,并放到resources下的mapper文件夾下 -->

      <sqlMapGenerator targetPackage='mapper' targetProject='src/main/resources'></sqlMapGenerator>

      <!-- 生成mapper xml對應dao接口,放到com.songguoliang.springboot.mapper包下-->

      <javaClientGenerator targetPackage='com.songguoliang.springboot.mapper' targetProject='src/main/java' type='XMLMAPPER'></javaClientGenerator>

      <!-- table標簽可以有多個,至少一個,tableName指定表名,可以使用_和%通配符 -->

      <table tableName='tbl_user'>

      <!-- 是否只生成POJO對象 -->

      <property name='modelOnly' value='false'/>

      <!-- 數(shù)據(jù)庫中表名有時我們都會帶個前綴,而實體又不想帶前綴,這個配置可以把實體的前綴去掉 -->

      <domainObjectRenamingRule searchString='^Tbl' replaceString=''/>

      </table>

      </context>

      </generatorConfiguration>

      重新運行MyBatis Generator的maven插件,生成如下內(nèi)容:

      在實際項目中,我們的數(shù)據(jù)庫連接已經(jīng)在配置文件里配置過了,如果在generatorConfig.xml配置文件再配一次,比較麻煩,通常可以直接引入數(shù)據(jù)庫的配置文件,如下:

      application.properties內(nèi)容:

      ## 數(shù)據(jù)源配置

      spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=false

      spring.datasource.username=root

      spring.datasource.password=root

      spring.datasource.driver-class-name=com.mysql.jdbc.Driver

      generatorConfig.xml配置如下:

      <?xml version='1.0' encoding='UTF-8'?>

      <!DOCTYPE generatorConfiguration

      PUBLIC '-////DTD MyBatis Generator Configuration 1.0//EN'

      'http:///dtd/mybatis-generator-config_1_0.dtd'>

      <generatorConfiguration>

      <!-- 導入配置文件 -->

      <properties resource='application.properties'/>

      <!-- defaultModelType='flat' 設置復合主鍵時不單獨為主鍵創(chuàng)建實體 -->

      <context id='MySql' defaultModelType='flat'>

      <!-- 生成的POJO實現(xiàn)java.io.Serializable接口 -->

      <plugin type='org.mybatis.generator.plugins.SerializablePlugin' />

      <!--注釋-->

      <commentGenerator>

      <!-- 將數(shù)據(jù)庫中表的字段描述信息添加到注釋 -->

      <property name='addRemarkComments' value='true'/>

      <!-- 注釋里不添加日期 -->

      <property name='suppressDate' value='true'/>

      </commentGenerator>

      <!-- 數(shù)據(jù)庫連接,直接通過${}讀取application.properties里的配置 -->

      <jdbcConnection

      driverClass='${spring.datasource.driver-class-name}'

      connectionURL='${spring.datasource.url}'

      userId='${spring.datasource.username}'

      password='${spring.datasource.password}'/>

      <!-- 生成POJO對象,并將類放到com.songguoliang.springboot.entity包下 -->

      <javaModelGenerator targetPackage='com.songguoliang.springboot.entity' targetProject='src/main/java'></javaModelGenerator>

      <!-- 生成mapper xml文件,并放到resources下的mapper文件夾下 -->

      <sqlMapGenerator targetPackage='mapper' targetProject='src/main/resources'></sqlMapGenerator>

      <!-- 生成mapper xml對應dao接口,放到com.songguoliang.springboot.mapper包下-->

      <javaClientGenerator targetPackage='com.songguoliang.springboot.mapper' targetProject='src/main/java' type='XMLMAPPER'></javaClientGenerator>

      <!-- table標簽可以有多個,至少一個,tableName指定表名,可以使用_和%通配符 -->

      <table tableName='tbl_user'>

      <!-- 是否只生成POJO對象 -->

      <property name='modelOnly' value='false'/>

      <!-- 數(shù)據(jù)庫中表名有時我們都會帶個前綴,而實體又不想帶前綴,這個配置可以把實體的前綴去掉 -->

      <domainObjectRenamingRule searchString='^Tbl' replaceString=''/>

      </table>

      </context>

      </generatorConfiguration>

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多