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

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

    • 分享

      MyBatis學(xué)習(xí)之代碼生成器Generator

       酒駕的酒瓶蓋 2017-09-12

      • MyBatis Generator (MBG) 是一個(gè)Mybatis的代碼生成器,它可以幫助我們根據(jù)數(shù)據(jù)庫(kù)中表的設(shè)計(jì)生成對(duì)應(yīng)的實(shí)體類,xml Mapper文件,接口以及幫助類(也就是我們可以借助該類來進(jìn)行簡(jiǎn)單的CRUD操作),這樣就避免了我們每使用到一張表的數(shù)據(jù)就需要手動(dòng)去創(chuàng)建對(duì)應(yīng)的類和xml文件,這就幫我們節(jié)約了大量的時(shí)間去開發(fā)和業(yè)務(wù)邏輯有關(guān)的功能,但是如果對(duì)聯(lián)合查詢和存儲(chǔ)過程您仍然需要手寫SQL和對(duì)象。下面我主要介紹基于Maven和普通的Java工程兩種方式來生成相應(yīng)的文件。

      基于Maven插件的方式

      1. 首先我們應(yīng)該創(chuàng)建一個(gè)Maven工程,在pom.xml文件中添加我們所需要用到的jar包的依賴以及添加mybatis-generator-maven-plugin插件,但需要注意的是里面的標(biāo)簽指定generatorConfig.xml文件的位置好像不起作用,默認(rèn)就是讀取src/main/resources下面的xml文件,放在其它地方都不起作用,而且會(huì)報(bào)錯(cuò),說generatorConfig.xml文件找不到:
      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          <mybatis-generator.version>1.3.2</mybatis-generator.version>
          <mysql.version>5.1.13</mysql.version>
          <mybatis.version>3.2.4</mybatis.version>
       </properties>
      
       <dependencies>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
          </dependency>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>${mysql.version}</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-core</artifactId>
              <version>${mybatis-generator.version}</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
          </dependency>
       </dependencies>
       <build>
              <finalName>mybatis-generator</finalName>
              <pluginManagement>
                  <plugins>
                      <plugin>
                          <groupId>org.mybatis.generator</groupId>
                          <artifactId>mybatis-generator-maven-plugin</artifactId>
                          <version>${mybatis-generator.version}</version>
                          <!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng)  -->
                          <dependencies>
                              <dependency>
                                  <groupId>mysql</groupId>
                                  <artifactId>mysql-connector-java</artifactId>
                                  <version>${mysql.version}</version>
                              </dependency>
                          </dependencies>
                          <!-- 自動(dòng)生成 -->
                          <executions>
                              <execution>
                                  <id>Generate MyBatis Artifacts</id>
                                  <goals>
                                      <goal>generate</goal>
                                  </goals>
                                  <configuration>
                                      <!-- 指定文件位置好像不起作用,始終默認(rèn)讀取src/main/resources/generatorConfig.xml文件 -->
                                      <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                                      <!--允許移動(dòng)生成的文件-->
                                      <verbose>true</verbose>
                                      <!--允許覆蓋生成的文件-->
                                      <overwrite>true</overwrite>
                                  </configuration>
                              </execution>
                          </executions>
                      </plugin>
                      <plugin>
                          <groupId>org.apache.maven.plugins</groupId>
                          <artifactId>maven-compiler-plugin</artifactId>
                          <configuration>
                              <source>1.5</source>
                              <target>1.5</target>
                              <encoding>UTF-8</encoding>
                          </configuration>
                      </plugin>
                  </plugins>
              </pluginManagement>
       </build>
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 64
      • 65
      • 66
      • 67
      • 68
      • 69
      • 70
      • 71
      • 72
      • 73
      • 74
      • 75
      • 76

      2.上面說到的generatorConfig.xml文件也是需要我們自己配置的,里面主要配置連接數(shù)據(jù)庫(kù)的配置和生成的文件配置信息以及最重要的就是我們要生成的實(shí)體類所對(duì)應(yīng)的的表或者試圖。

      <?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">
        <!-- 該配置文件說明插件需要如何生成,以及生成對(duì)應(yīng)的包名,路徑等信息。
              還有重要的就是我們要生成的實(shí)體類所對(duì)應(yīng)的的表或者試圖 -->
      <generatorConfiguration> 
          <properties resource="mybatis_generator.properties" />
          <context id="MBG" targetRuntime="MyBatis3" defaultModelType="conditional">
              <!-- 注意以下標(biāo)簽的順序:property*,plugin*,commentGenerator?,jdbcConnection,
                      javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,
                      javaClientGenerator?,table+ -->
              <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
              <!-- 這個(gè)插件給由MBG生成的Java模型對(duì)象增加了equals和hashCode方法 -->
              <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>
              <commentGenerator>
                  <!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
                  <property name="suppressAllComments" value="false"/>
                  <!-- 不希望生成的注釋中包含時(shí)間戳 -->
                  <property name="suppressDate" value="true" />
                  <!-- 是否  自動(dòng)為每一個(gè)生成的類創(chuàng)建一個(gè)構(gòu)造方法-->
                  <property name="constructorBased" value="false"/>
              </commentGenerator>
              <!-- 數(shù)據(jù)庫(kù)連接 -->
              <jdbcConnection 
                  driverClass="${jdbc_driver}" 
                  connectionURL="${jdbc_url}"
                  userId="${jdbc_username}" 
                  password="${jdbc_password}">
              </jdbcConnection>
              <!-- 指定生成的類型為java類型,避免數(shù)據(jù)庫(kù)中number等類型字段 -->
              <javaTypeResolver>
                  <property name="forceBigDecimals" value="false"/>
              </javaTypeResolver>
              <!-- 生成model模型,對(duì)應(yīng)的包,存放位置可以指定具體的路徑,如/ProjectName/src,也可以使用MAVEN來自動(dòng)生成 -->
              <javaModelGenerator targetPackage="${modelPackage}" targetProject="${targetProject}">
                  <!-- 在targetPackage的基礎(chǔ)上,根據(jù)數(shù)據(jù)庫(kù)的schema再生成一層package,最終生成的類放在這個(gè)package下,默認(rèn)為false -->
                  <property name="enableSubPackages" value="true"/>
                  <!-- 設(shè)置是否在getter方法中,對(duì)String類型字段調(diào)用trim()方法 -->
                  <property name="trimStrings" value="true"/>
              </javaModelGenerator>
              <!--對(duì)應(yīng)的xml mapper文件  -->
              <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${targetProject}" >
                  <property name="enableSubPackages" value="true"/>
              </sqlMapGenerator> 
              <!-- 對(duì)應(yīng)的dao接口 -->
              <javaClientGenerator type="XMLMAPPER" targetPackage="${daoMapperPackage}" targetProject="${targetProject}" >
                  <property name="enableSubPackages" value="true"/>
              </javaClientGenerator>
      
              <!-- 表名對(duì)應(yīng)生成的實(shí)體 -->      
              <table tableName="ecjtu_tab_user" domainObjectName="User" />
              <!-- enableCountByExample="false" enableUpdateByExample="false"
              enableDeleteByExample="false" enableSelectByExample="false"
              selectByExampleQueryId="false">  指定是否生成操作數(shù)據(jù)庫(kù)對(duì)應(yīng)的方法 -->
          </context>
      </generatorConfiguration>
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57

      注:該配置文件中有兩個(gè)要注意的地方:
      a、配置文件中的注釋應(yīng)該為:<!--這是注釋-->,不能在注釋里面再嵌套–之類的符號(hào),比如:<!----這--是注釋-->,否則運(yùn)行時(shí)會(huì)提示報(bào)錯(cuò)信息。
      b、標(biāo)簽里面元素是有順序的,如果順序亂了也會(huì)報(bào)錯(cuò)的,順序依次為:

      property——>plugin——>commentGenerator——>jdbcConnection——>
      javaTypeResolver——>javaModelGenerator——>sqlMapGenerator——>
      javaClientGenerator——>table+
      • 1
      • 2
      • 3

      3.對(duì)于generatorConfig.xml文件中引入的mybatis_generator.properties文件,里面主要是數(shù)據(jù)庫(kù)連接信息和生成的文件的目錄信息,我們可以在generatorConfig.xml的同目錄下創(chuàng)建該文件:

      #數(shù)據(jù)庫(kù)配置 
      #jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
      jdbc_url=jdbc:mysql://localhost:3306/test
      jdbc_driver=com.mysql.jdbc.Driver
      jdbc_username=root
      jdbc_password=admin
      
      #執(zhí)行:右鍵 Run As ---->Maven build ---->Goals:mybatis-generator:generate
      #輸出目錄
      targetProject=src/main/java
      #modelPackage,sqlMapperPackage,daoMapperPackage 通常一致??
      modelPackage=com.ecjtu.generator.entitys
      sqlMapperPackage=com.ecjtu.generator.entitys
      daoMapperPackage=com.ecjtu.generator.entitys
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14

      4.創(chuàng)建好了以上三個(gè)文件后,我們?cè)賱?chuàng)建一個(gè)包路徑就可以執(zhí)行了,也就是在src/main/java下創(chuàng)建mybatis_generator.properties文件中指定的生成實(shí)體的包路徑,即上面所指定的com.ecjtu.generator.entitys包,創(chuàng)建好了之后再右鍵pom.xml文件,Run As —->Maven build —->Goals:mybatis-generator:,執(zhí)行該操作后刷新以下該項(xiàng)目你所生成的文件就都出現(xiàn)了


      普通的Java工程生成實(shí)體

      這種方式較Maven插件的方式也就是我們自己寫一個(gè)類在Main方法中去讀取generatorConfig.xml文件,然后去生成對(duì)應(yīng)的文件。

      1. 既然不用Maven當(dāng)中的插件,而且是一個(gè)普通的Java工程,那么就需要我們自己手動(dòng)引入相關(guān)的Jar包,在src下面新建一個(gè)lib文件夾,把用到的jar包復(fù)制到該文件夾下面,引入的jar包如下圖:
        這里寫圖片描述

      2. jar包引入好了之后,其他的配置文件跟使用Maven的方式差不多,也是配置generatorConfig.xml文件以及mybatis_generator.properties文件。其中g(shù)eneratorConfig.xml文件和Maven方式唯一不同的就是需要在 標(biāo)簽外指明驅(qū)動(dòng)包的位置:

      <!-- 使用絕對(duì)路徑,不然可能會(huì)找不到j(luò)ar包 -->
          <classPathEntry location="E:\JavaStudy\DevlopeEnvironment\workspace\MyBatisGeneratorMain\lib\mysql-connector-java-5.1.22-bin.jar" />
      • 1
      • 2

      3.最后一個(gè)也就是創(chuàng)建一個(gè)類,在Main方法中讀取generatorConfig.xml文件,然后生成相應(yīng)的文件

      package com.ecjtu.generator.main;
      
      import java.io.File;
      import java.io.IOException;
      import java.net.URL;
      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;//如果已經(jīng)生成過了是否進(jìn)行覆蓋
              String genCfg = "/generatorConfig.xml";//配置文件的路徑:默認(rèn)放到src下面
              URL url = GenMain.class.getResource(genCfg);
              String file = url.getFile();
              File configFile = new File(file);
              ConfigurationParser cfgParser = new ConfigurationParser(warnings);//配置文件解析器
              Configuration config = null;
              try {
                  config = cfgParser.parseConfiguration(configFile);
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (XMLParserException e) {
                  e.printStackTrace();
              }
              DefaultShellCallback callback = new DefaultShellCallback(overwrite);
              MyBatisGenerator generator = null;
              try {
                  generator = new MyBatisGenerator(config, callback, warnings);
              } catch (InvalidConfigurationException e) {
                  e.printStackTrace();
              }
              try {
                  generator.generate(null);
                  System.out.println("mybatis 代碼生成成功。。。");
              } catch (SQLException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53

      4.最后也就大功告成了,直接右鍵執(zhí)行java程序,再刷新一下,生成的文件就都出現(xiàn)了。


      到這里,MyBatis基于Maven和普通的Java工程生成實(shí)體的兩種方式就都介紹完了。。。。。。。。。。。

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多