<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # &lt;table&gt; 元素 &lt;table&gt; 元素用來從內省數據庫中選擇一個表。選定的表會生成如下的這些對象: * 一個 MyBatis/iBATIS 格式的SQL映射文件 * 一組根據表生成的"model"類: * 一個和表的主鍵匹配的類(如果表有主鍵)。 * 一個包含了非主鍵字段和BLOB字段的類,如果存在主鍵類,這個類就會繼承主鍵類。 * 如果表中包含BLOB字段,就會有一個包含了BLOB字段的類。這個類會根據表的配置繼承上面的一個或兩個類。 * 一個用于不同的"by example"方法(selectByExample, deleteByExample)生成動態查詢條件的類。 * (可選) 一個DAO接口或者類 這個元素是[&lt;context&gt;](context.html)元素的一個至少存在一個的必選子元素。 您可以指定不限制數量的table元素。 ## 數據庫標識符 MyBatis Generator (MBG) 試圖自動處理數據庫標識符的大小寫敏感性。 在大多數情況下,無論您是否設置`catalog`, `schema` 和 `tableName` 屬性,MBG都能找到表。 MBG的處理過程遵循以下步驟: 1. 如果 `catalog`, `schema` 或 `tableName` 屬性包含空格,MBG將會根據指定的精確的情況查找。 在這種(包含空格)情況下,MBG將會自動分割生成SQL中表的標識符。 2. 如果數據庫記錄是以大寫形式存儲的標識符,MGB會自動將任何表的標識符轉換為大寫。 3. 如果數據庫記錄是以小寫形式存儲的標識符,MGB會自動將任何表的標識符轉換為小寫。 4. 其他情況,MBG根據指定的精確的情況查找。 在大多數情況下,這種處理很完美。然而,在某些情況下它會失敗。 例如,假設您創建了這樣的一個表: ``` create table "myTable" ( ...some columns ) ``` 因為表名可以用分隔符,即使數據庫把標識符存儲為大寫,大部分的數據庫會根據精確指定的表名來生成表。 在(上面)這種情況下,您需要在表的配置中指定`delimitIdentifiers="true"`。 ## 必選屬性 | 屬性 | 描述 | | --- | --- | | tableName | 數據庫表的名稱(不包括schema或catalog)。如果需要,指定的值可以包含SQL通配符。 | ## 可選屬性 | 屬性 | 描述 | | --- | --- | | schema | 數據庫 schema - 如果您的數據庫不使用 schema ,或者有一個默認的 schema 您不需要設置 schema。 如果需要,指定的值可以包含SQL通配符。 | | catalog | 數據庫 catalog - 如果您的數據庫不使用 catalog,或者有一個默認的 catalog,您就不需要設置 catalog。 | | alias | 如果指定,這個值會用在生成的select查詢SQL的表的別名和列名上。 列名會被別名為 alias_actualColumnName(別名_實際列名) 這種模式。 | | domainObjectName | 生成對象的基本名稱。如果沒有指定,MBG會自動根據表名來生成名稱。 這個(指定或者自動生成的)名字將用于計算實體類的名稱和DAO類的名稱。您可以在實體對象的名字上指定包名分割。 例如,您可以指定`foo.Bar`,然后實體對象的名字會是 `Bar`,包名`foo`會添加到生成器配置中指定的目標包后面。 | | enableInsert | 指定是否生成Insert語句。默認值是 _true_。 | | enableSelectByPrimaryKey | 指定是否生成通過主鍵查詢的語句。 無論這個怎么設置,當表不存在主鍵的時候,不會生成這個語句。默認值是 _true_。 | | enableSelectByExample | 指定是否生成通過Example查詢的語句。 這個語句支持運行時生成多種不同條件的動態查詢。默認值是 _true_。 | | enableUpdateByPrimaryKey | 指定是否生成通過主鍵更新的語句。 無論這個怎么設置,當表不存在主鍵的時候,不會生成這個語句。默認值是 _true_。 | | enableDeleteByPrimaryKey | 指定是否生成通過主鍵刪除的語句。 無論這個怎么設置,當表不存在主鍵的時候,不會生成這個語句。默認值是 _true_。 | | enableDeleteByExample | 指定是否生成通過Example刪除的語句。 這個語句支持運行時生成多種不同的條件動態刪除。默認值是 _true_。 | | enableCountByExample | 指定是否生成通過Example查詢總數的語句。 這個語句將返回滿足Example條件的數據總數。默認值是 _true_。 | | enableUpdateByExample | 指定是否生成通過Example更新的語句。 這個語句將更新滿足Example條件的數據。 如果設置為True,UpdateByExampleSelective語句也會生成。 這個語句只會更新那些參數中值不為null的的列。默認值是 _true_。 | | selectByPrimaryKeyQueryId | 這個值會以"'&lt;value&gt;' as QUERYID"這種形式被添加到通過主鍵查詢的語句的select列中。 這可能對在運行時的DBA跟蹤工具中標記查詢有用。 如果您使用這個值,您需要為MBG生成的每一個查詢指定一個唯一的id。 | | selectByExampleQueryId | 這個值會以"'&lt;value&gt;' as QUERYID"這種形式被添加到通過Example查詢的語句的select列中。 這可能對在運行時的DBA跟蹤工具中標記查詢有用。 如果您使用這個值,您需要為MBG生成的每一個查詢指定一個唯一的id。 | | modelType | 如果您需要,這個值可以用來重寫默認的模型類型。 如果沒有指定,MBG將會生成基于上下文默認模型類型的實體對象。 模型類型定義了MBG如何生成實體類。 有一些模型類型MGB會為每個表生成一個單獨的實體類。 另外一些模型,MGB會根據表結構生成不同的一些類。 這個屬性有以下可選值: | | | conditional 這個模型和hierarchical類似,除了如果那個單獨的類將只包含一個字段,將不會生成一個單獨的類。 因此,如果一個表的主鍵只有一個字段,那么不會為該字段生成單獨的實體類,會將該字段合并到基本實體類中。 | | | flat 該模型為每一張表只生成一個實體類。這個實體類包含表中的所有字段。 | | | hierarchical 如果表有主鍵,那么該模型會產生一個單獨的主鍵實體類,如果表還有BLOB字段, 則會為表生成一個包含所有BLOB字段的單獨的實體類,然后為所有其他的字段生成一個單獨的實體類。 MBG會在所有生成的實體類之間維護一個繼承關系(注:BLOB類 繼承 其他字段類 繼承 主鍵類)。 | | escapeWildcards | 這個屬性表示當查詢列,是否對schema和表名中的SQL通配符 ('_' and '%') 進行轉義。 對于某些驅動當schema或表名中包含SQL通配符時(例如,一個表名是MY_TABLE,有一些驅動需要將下劃線進行轉義)是必須的。默認值是 _false_. | | delimitIdentifiers | 這個屬性表示當查詢表并且在生成的SQL中分隔標識符時,是否使用指定的確切的值。 有關更多詳細信息,請參見上面的詳述。分隔符在 [&lt;context&gt;](context.html) 元素上指定。默認值是 _false_。除非 `catalog`, `schema` 或 `tableName` 屬性值包含空白時,是 _true_. | | delimitAllColumns | 指示是否給生成SQL中所有的列名添加分隔符。 這是一種給每個列添加`&lt;columnOverride&gt;`來指定列需要被分隔的替代方式。 這對類似PostgreSQL這種使用小寫標識符的數據庫很有用。分隔符在 [&lt;context&gt;](context.html) 元素上指定。默認值是 _false_. | ## 子元素 * [&lt;property&gt;](property.html) (0..N) * [&lt;generatedKey&gt;](generatedKey.html) (0 or 1) * [&lt;columnRenamingRule&gt;](columnRenamingRule.html) (0 or 1) * [&lt;columnOverride&gt;](columnOverride.html) (0..N) * [&lt;ignoreColumn&gt;](ignoreColumn.html) (0..N) ## 支持的屬性 下面的表格列出了所有可用的 [&lt;property&gt;](property.html) 子元素: | 屬性名 | 屬性值 | | --- | --- | | constructorBased | 此屬性用于選擇代碼生成器是否生成接受類中的每個字段的值的類的構造函數。 此外,SQL結果映射也會為每個字段生成使用構造方法而不是"setter"的方式。此屬性僅適用于MyBatis3,iBATIS2將會被忽略。如果"immutable"屬性設置為"true",這個屬性將會被忽略。_默認值是 false_ | | ignoreQualifiersAtRuntime | 如果設置為true,MBG不會講schema或catalog添加到生成SQL中的表名上。 如果您有幾個schemas中的表具有相同的名稱,這是非常有用的。 您可以使用MBG生成基于在一個schema上的表,但是運行時不包含schema。_默認值是 false_ | | immutable | 此屬性用于選擇MBG是否會生成不可變的模型類。 這意味著這些類不會包含"setter"方法,而且通過構造參數接收類中所有字段的值。如果設置為true,將會忽略"constructorBased"屬性, 強制生成通過參數化構造方法的模型類。此屬性僅適用于MyBatis3,iBATIS2將會被忽略。_默認值是 false_ | | modelOnly | 此屬性用于選擇MBG是否只會為表生成模型類。如果設置為true,那么就不會生成Java客戶端類。 如果 &lt;sqlMapGenerator&gt; 配置了,并且屬性設置為true,那么MGB將會在該表的SQL映射XML中只生成結果映射元素。如果設置為true,這個值會覆蓋&lt;table&gt;元素上所有的"enable*"屬性,將不會生成任何CRUD方法。_默認值是 false_ | | rootClass | 這個屬性可以用來指定所有生成的Java模型類的基類。 如果表包含主鍵,MBG會將該值指定為主鍵對象的超類。 或者其他記錄對象的超類。 這個值將會覆蓋Java模型生成配置中配置的`rootClass`**重要:** 如果MBG可以加載基類,通常生成的屬性不會覆蓋和基類中完全匹配的屬性。 完全匹配屬性的定義如下 | | | 屬性名稱完全相同 | | | 屬性的類型相同 | | | 屬性有一個"getter"方法 | | | 屬性有一個"setter"方法 | | | 如果指定這個值,這個屬性值應該是一個完全限定的類名(例如:com.mycompany.MyRootClass). | | rootInterface | 這個屬性可以用來指定所有生成的DAO接口對象的父接口。 這個屬性值會覆蓋DAO生成器配置中配置的`rootInterface`屬性。**重要:** MBG 不會校驗接口是否存在或者合法。如果指定這個值,這個屬性值應該是一個完全限定的接口名 (例如:com.mycompany.MyRootInterface). | | runtimeCatalog | 如果您指定了這個屬性值,MBG會在生成的SQL中使用這個catalog,而不是前面配置的`catalog` 屬性值。 當您生成代碼的catalog和運行時的catalog不一樣時,這會非常有用。 | | runtimeSchema | 如果您指定了這個屬性值,MBG會在生成的SQL中使用這個schema,而不是前面配置的`schema` 屬性值。 當您生成代碼的schema和運行時的schema不一樣時,這會非常有用。 | | runtimeTableName | 如果您指定了這個屬性值,MBG會在生成的SQL中使用這個表名,而不是前面配置的`tableName` 屬性值。 當您想在Oracle中使用公共同義詞生成對象時,這會非常有用。 在這種情況下,您將需要生成對象的同義詞的指向您實際表。那就在此屬性中指定同義詞名稱。 在使用公共同義詞的大多數情況下,您還需要設置 `ignoreQualifiersAtRuntime`屬性。 | | selectAllOrderByClause | 這個屬性可以用于指定將會加到 `selectAll` 方法中的order by語句。 這僅適用于您使用`MyBatis3Simple`目標運行環境時。 MBG會將您在這兒指定的任何屬性值前面追加`order by`, 因此該屬性贏僅包含列表中的列(例如 `ID1, ID2` 或 `ID1 desc, ID2 asc`) | | useActualColumnNames | 如果設置為true,那么MBG會使用從數據庫元數據獲取的列名作為生成的實體對象的屬性。 如果為false(默認值),MGB將會嘗試將返回的名稱轉換為駝峰形式。 在這兩種情況下,可以通過 &lt;columnOverride&gt; 元素顯示指定,在這種情況下將會忽略這個(useActualColumnNames)屬性。例如,假設一個表包含START_DATE列,如果這個屬性是"true", 那么MBG生成的屬性名是`START_DATE` - 這意味著這個值的getter和setter方法將會是 `getSTART_DATE()` 和 `setSTART_DATE()`. 如果這個屬性值是fasle,MBG將會生成的屬性名是 `startDate` - 這意味著這個值的getter和setter方法將會是 `getStartDate()` 和 `setStartDate()`._默認值是 false_ | | useColumnIndexes | 如果是true,MBG生成resultMaps的時候會使用列的索引,而不是結果中列名的順序. 當表中的列名的區別只是大小寫的時候,這會非常有用. 這個支持還會有一個輕微的性能優勢._默認值是 false_**重要提示:** 當目標運行環境是Mybatis版本3時不支持這個屬性. | | useCompoundPropertyNames | 如果是true,那么MBG生成屬性名的時候會將列名和列備注接起來. 這對于那些通過第四代語言自動生成列(例如:FLD22237),但是備注包含有用信息(例如:"customer id")的數據庫來說很有用. 在這種情況下,MBG會生成屬性名FLD2237_CustomerId._默認值是 false_ | ## 示例 這個元素指定我們總是想為一個在MYSCHEMA schema上的叫做 MYTABLE 的表生成代碼. 我們還想忽略表中一個叫"fred"的列,而且我想還想重寫"BEG_DATA"列,以便生成的屬性名是"startDate". ``` <table tableName="MYTABLE" schema="MYSCHEMA"> <ignoreColumn column="fred"/> <columnOverride column="BEG_DATE" property="startDate"/> </table> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看