<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

        在idea中使用逆向工程插件自動創建實體和mapper接口;

        工具:idea+maven+mysql

        當我們要寫一個javaWeb項目時,如果數據庫的表多了,用手動輸入實體類信息是比較麻煩的,所以下面就介紹一下在maven項目中使用逆向工程方法自動根據數據庫信息創建相關實體類。


      1、首先需要創建一個maven項目,并將項目中相關的包創建完成,即pojo、dao/mapper等。

      2、下載相關依賴,尤其是數據庫驅動;

      3、首先在pom.xml文件中加入以下依賴,下載插件mybatis-generator-maven-plugin。

       1 <build>
       2         <plugins>
       3             <plugin>
       4                 <groupId>org.mybatis.generator</groupId>
       5                 <artifactId>mybatis-generator-maven-plugin</artifactId>
       6                 <version>1.3.2</version>
       7                 <configuration>
       8                 <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
       9                 <overwrite>true</overwrite>
      10                 <verbose>true</verbose>
      11             </configuration>
      12             <!--如果在使用插件創建時失敗,可加入下面這個依賴(數據庫驅動,根據數據庫版本下載)-->
      13             <dependencies>
      14                 <dependency>
      15                     <groupId>mysql</groupId>
      16                     <artifactId>mysql-connector-java</artifactId>
      17                     <version>8.0.15</version>
      18                 </dependency>
      19             </dependencies>
      20             </plugin>
      21         </plugins>
      22     </build>

      2、在resources資源文件下創建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>
          <!--導入屬性配置-->
          <properties resource="jdbc.properties"/>
          <!--指定特定數據庫的jdbc驅動jar包的位置-->
          <classPathEntry location="/Users/lijincheng/mavenJar/repository/mysql/mysql-connector-java/8.0.15"/>
      
          <context id="default" targetRuntime="MyBatis3">
      
              <!-- optional,旨在創建class時,對注釋進行控制 -->
              <commentGenerator>
                  <property name="suppressDate" value="true"/>
                  <property name="suppressAllComments" value="true"/>
              </commentGenerator>
      
              <!--jdbc的數據庫連接 -->
              <jdbcConnection
                      driverClass="com.mysql.cj.jdbc.Driver"
                      connectionURL="jdbc:mysql://localhost:3306/jwzx"
                      userId="root"
                      password="root">
              </jdbcConnection>
      
      
              <!-- 非必需,類型處理器,在數據庫類型和java類型之間的轉換控制-->
              <javaTypeResolver>
                  <property name="forceBigDecimals" value="false"/>
              </javaTypeResolver>
      
      
              <!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類
                  targetPackage     指定生成的model生成所在的包名
                  targetProject     指定在該項目下所在的路徑
              -->
              <javaModelGenerator targetPackage="com.mysjz.pojo"
                                  targetProject="src/main/java">
      
                  <!-- 是否允許子包,即targetPackage.schemaName.tableName -->
                  <property name="enableSubPackages" value="false"/>
                  <!-- 是否對model添加 構造函數 -->
                  <property name="constructorBased" value="true"/>
                  <!-- 是否對類CHAR類型的列的數據進行trim操作 -->
                  <property name="trimStrings" value="true"/>
                  <!-- 建立的Model對象是否 不可改變  即生成的Model對象不會有 setter方法,只有構造方法 -->
                  <property name="immutable" value="false"/>
              </javaModelGenerator>
      
              <!--Mapper映射文件生成所在的目錄 為每一個數據庫的表生成對應的SqlMap文件 -->
              <sqlMapGenerator targetPackage="resources/mapperxmlconfig"
                               targetProject="src/main">
                  <property name="enableSubPackages" value="false"/>
              </sqlMapGenerator>
      
              <!-- 客戶端代碼,生成易于使用的針對Model對象和XML配置文件 的代碼
                      type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper對象
                      type="MIXEDMAPPER",生成基于注解的Java Model 和相應的Mapper對象
                      type="XMLMAPPER",生成SQLMap XML文件和獨立的Mapper接口
              -->
              <javaClientGenerator targetPackage="com.mysjz.mapper"
                                   targetProject="src/main/java" type="XMLMAPPER">
                  <property name="enableSubPackages" value="true"/>
              </javaClientGenerator>
      
              <table tableName="mgr" domainObjectName="Mgr"
                     enableCountByExample="false" enableUpdateByExample="false"
                     enableDeleteByExample="false" enableSelectByExample="false"
                     selectByExampleQueryId="false">
      
                  <!-- 用來修改表中某個列的屬性,MBG會使用修改后的列來生成domain的屬性;
                  column:要重新設置的列名;
                  注意,一個table元素中可以有多個columnOverride元素哈~
                -->
                  <columnOverride column="username">
                      <!-- 使用property屬性來指定列要生成的屬性名稱
                      <property name="property" value="userName"/>
                      -->
                      
                      <!-- javaType用于指定生成的domain的屬性類型,使用類型的全限定名
                      <property name="javaType" value=""/>
                       -->
      
                      <!-- jdbcType用于指定該列的JDBC類型 
                      <property name="jdbcType" value=""/>
                       -->
      
                      <!-- typeHandler 用于指定該列使用到的TypeHandler,如果要指定,配置類型處理器的全限定名
                          注意,mybatis中,不會生成到mybatis-config.xml中的typeHandler
                          只會生成類似:where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}的參數描述
                      <property name="jdbcType" value=""/>
                      -->
      
                      <!-- 參考table元素的delimitAllColumns配置,默認為false
                      <property name="delimitedColumnName" value=""/>
                       -->
                  </columnOverride>
                  
              </table>
      
              <table tableName="teacher" domainObjectName="Teacher"
                     enableCountByExample="false" enableUpdateByExample="false"
                     enableDeleteByExample="false" enableSelectByExample="false"
                     selectByExampleQueryId="false">
              </table>
              <table tableName="proctor" domainObjectName="Proctor"
                     enableCountByExample="false" enableUpdateByExample="false"
                     enableDeleteByExample="false" enableSelectByExample="false"
                     selectByExampleQueryId="false">
              </table>
      
          </context>
      </generatorConfiguration>

      在配置table標簽里的內容時,可以考慮以下東西:

      選擇一個table來生成相關文件,可以有一個或多個table,必須要有table元素
              選擇的table會生成一下文件:
              1SQL map文件
              2,生成一個主鍵類;
              3,除了BLOB和主鍵的其他字段的類;
              4,包含BLOB的類;
              5,一個用戶生成動態查詢的條件類(selectByExample, deleteByExample),可選;
              6,Mapper接口(可選)
      
              tableName(必要):要生成對象的表名;
              注意:大小寫敏感問題。正常情況下,MBG會自動的去識別數據庫標識符的大小寫敏感度,在一般情況下,MBG會
                  根據設置的schema,catalog或tablename去查詢數據表,按照下面的流程:
                  1,如果schema,catalog或tablename中有空格,那么設置的是什么格式,就精確的使用指定的大小寫格式去查詢;
                  2,否則,如果數據庫的標識符使用大寫的,那么MBG自動把表名變成大寫再查找;
                  3,否則,如果數據庫的標識符使用小寫的,那么MBG自動把表名變成小寫再查找;
                  4,否則,使用指定的大小寫格式查詢;
              另外的,如果在創建表的時候,使用的""把數據庫對象規定大小寫,就算數據庫標識符是使用的大寫,在這種情況下也會使用給定的大小寫來創建表名;
              這個時候,請設置delimitIdentifiers="true"即可保留大小寫格式;
      
              可選:
              1,schema:數據庫的schema;
              2,catalog:數據庫的catalog;
              3,alias:為數據表設置的別名,如果設置了alias,那么生成的所有的SELECT SQL語句中,列名會變成:alias_actualColumnName
              4,domainObjectName:生成的domain類的名字,如果不設置,直接使用表名作為domain類的名字;可以設置為somepck.domainName,那么會自動把domainName類再放到somepck包里面;
              5,enableInsert(默認true):指定是否生成insert語句;
              6,enableSelectByPrimaryKey(默認true):指定是否生成按照主鍵查詢對象的語句(就是getById或get);
              7,enableSelectByExample(默認true):MyBatis3Simple為false,指定是否生成動態查詢語句;
              8,enableUpdateByPrimaryKey(默認true):指定是否生成按照主鍵修改對象的語句(即update);
              9,enableDeleteByPrimaryKey(默認true):指定是否生成按照主鍵刪除對象的語句(即delete);
              10,enableDeleteByExample(默認true):MyBatis3Simple為false,指定是否生成動態刪除語句;
              11,enableCountByExample(默認true):MyBatis3Simple為false,指定是否生成動態查詢總條數語句(用于分頁的總條數查詢);
              12,enableUpdateByExample(默認true):MyBatis3Simple為false,指定是否生成動態修改語句(只修改對象中不為空的屬性);
              13,modelType:參考context元素的defaultModelType,相當于覆蓋;
              14,delimitIdentifiers:參考tableName的解釋,注意,默認的delimitIdentifiers是雙引號,如果類似MYSQL這樣的數據庫,使用的是`(反引號,那么還需要設置context的beginningDelimiter和endingDelimiter屬性)
              15,delimitAllColumns:設置是否所有生成的SQL中的列名都使用標識符引起來。默認為false,delimitIdentifiers參考context的屬性
      
              注意,table里面很多參數都是對javaModelGenerator,context等元素的默認屬性的一個復寫;

      生成主鍵的方法

      如果設置了該元素,MBG會在生成的<insert>元素中生成一條正確的<selectKey>元素,該元素可選
                  column:主鍵的列名;
                  sqlStatement:要生成的selectKey語句,有以下可選項:
                      Cloudscape:相當于selectKey的SQL為: VALUES IDENTITY_VAL_LOCAL()
                      DB2       :相當于selectKey的SQL為: VALUES IDENTITY_VAL_LOCAL()
                      DB2_MF    :相當于selectKey的SQL為:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
                      Derby     :相當于selectKey的SQL為:VALUES IDENTITY_VAL_LOCAL()
                      HSQLDB    :相當于selectKey的SQL為:CALL IDENTITY()
                      Informix  :相當于selectKey的SQL為:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1
                      MySql     :相當于selectKey的SQL為:SELECT LAST_INSERT_ID()
                      SqlServer :相當于selectKey的SQL為:SELECT SCOPE_IDENTITY()
                      SYBASE    :相當于selectKey的SQL為:SELECT @@IDENTITY
                      JDBC      :相當于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty屬性
              <generatedKey column="" sqlStatement=""/>

      基本上就差不多了,如果需要了解更多關于這個配置的信息可以百度。

      3、上面過程完成后。點擊idea右側maven,找到mybatis-generator插件,點擊運行

       

       

      結果如下圖:

       


      完畢,親測好用 

      posted on 2019-12-22 21:54  月落長空  閱讀(895)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 99riav国产精品视频| 日韩a∨精品日韩在线观看 | 国产精品白浆在线观看免费| 麻豆一区二区三区精品蜜桃| 国产在线乱子伦一区二区| 久久这里只精品热免费99| 亚洲国产精品国自拍av| 男人扒开女人内裤强吻桶进去| 精品一区二区三区蜜桃久| 一区二区三区精品视频免费播放 | 国产美女久久久亚洲综合 | 亚洲国产一区二区三区亚瑟| 综合激情丁香久久狠狠| 日本一道一区二区视频| 亚洲天堂亚洲天堂亚洲色图| 性人久久久久| 女人香蕉久久毛毛片精品| 又爽又黄又无遮挡的激情视频| 岳普湖县| 少妇被粗大的猛烈进出动视频| 99久久无色码中文字幕| 亚洲av无码成人精品区一区| 亚洲熟妇一区二区三个区| 亚洲欧美偷国产日韩| 亚洲av日韩av永久无码电影| 久久www免费人成看片中文| 国产免费又黄又爽又色毛| 国产一级小视频| 91高清免费国产自产拍| 2021最新国产精品网站| 亚洲综合av一区二区三区| 免费人成网站免费看视频| 久久99国产精品尤物| av色蜜桃一区二区三区| 成年无码av片在线蜜芽| 亚洲av色一区二区三区| 国内精品无码一区二区三区| 滨州市| 国产99视频精品免费视频76| 欧美日韩国产一区二区三区欧| 亚洲欧美综合人成在线|