私は最近プロジェクトを行っていないので、詳細な説明を使用して、最も完全なMyBatisジェネレーター(略してMBG)の最も完全な構成ファイルを再編成しました。ENのユーザーガイドを見る必要はもうありません。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype generatorconfigurationpublic " - // mybatis.org//dtd mybatisジェネレーター構成1.0 // en" Generator-> <GeneratorConfiguration> <! - 構成アイテムまたは構成ファイルのロードに使用できます。構成ファイル全体で、$ {PropertyKey}を使用して構成アイテムリソースを参照できます。リソースの読み込みアドレスを構成し、リソースを使用し、MBGはCOM/MyProject/GeneratorConfig.Properties URLなどのClassPathから起動します。 2つのプロパティのうち1つのみを選択できることに注意してください。さらに、MyBatis-Generator-Maven-Pluginを使用する場合、pom.xmlで定義されているプロパティをGeneratorconfig.xml <Properties resource = "" url = "" "/> - > <! - MBGが機能する場合、ロードする必要がある依存関係のある依存関係パッケージの位置属性を示します。 files/ibm/sqllib/java/db2java.zip "/> - > <! - コンテキスト:オブジェクトのグループを生成するための環境ID:エラーを生成するときにプロンプトを生成するために使用されるコンテキストID:生成されたオブジェクトのスタイルを指定します。 2、フラット:すべてのコンテンツ(プライマリキー、ブロブ)などは、1つのオブジェクトで生成されます。 3、階層:プライマリキーはxxkeyオブジェクト(キークラス)、ブロブなどを生成します。オブジェクトを個別に生成し、その他の単純な属性は1つのオブジェクト(レコードクラス)にあります。 2、mybatis3simple:mybatis3に似ていますが、xxxbysampleは生成されません。導入されたColumnimpl:MBG - > <コンテキストID = "MySQL" defaultModelType = "hierarchical"ターゲットruntime = "mybatis3simple"> <! - databaseキーワードを自動的に識別します。通常、デフォルト値を保持し、データベースキーワード(Javaキーワード)を遭遇し、ColornOverRideを使用してオーバーライドします - > <プロパティ名= "autodelimitkeywords" value = "false"/> <! - 生成されたJavaファイルのエンコーディング - > <プロパティ名= "Javafileencoding" value = "utf-8"/>> < value = "org.mybatis.generator.api.dom.defaultjavaformatter"/> <! - フォーマットxmlコード - > <プロパティ名= "xmlformatter" value = "org.mybatis.generator.api.dom.defaultxmlformatter"/> <!> <!たとえば、OracleはDouble Quotesであり、MySQLはデフォルトで `バックテックになります。 - > <プロパティ名= "beginningdelimiter" value = "` "/> <property name =" enddelimiter "value =" `"/> <! - データベースを使用する必要があります。 userid = "root" password = "admin"> <! - ここで、プロパティプロパティを設定でき、各プロパティプロパティは構成ドライバーに設定されます - > </jdbcconnection> <! - javaタイププロセッサは、dbのタイプをJavaのタイプに処理し、javatyperesolverdefaultimplはデフォルトで使用されます。デフォルトでは、10進数と数値データ型に対応するために、整数、長い、短いなどを使用しようとすることに注意してください。 - > <javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverdefaultimpl"> <! - true:bigdecimal fals and defalice> 0; length> 18:sacer = 0; scale = 0; scale = 0;スケール= 0;長さ[5,9]:整数を使用します。スケール= 0;長さ<5:shortを使用します。 - > <プロパティname = "forcebigdecimals" value = "false"/> </javatyperesolver> <! - javaモデル作成者は必要な要素です。 2。Javaクラス。 3。クエリクラスターゲットパッケージ:生成されたクラスに配置されるパッケージ、実際のパッケージは、EnableSubPackages属性によって制御されます。 TargetProject:ターゲットプロジェクト、既存のディレクトリを指定し、生成されたコンテンツが指定されたディレクトリに配置されます。ディレクトリが存在しない場合、MBGは自動的にディレクトリを作成しません - > <JavamodelGenerator TargetPackage = "com._520it.mybatis.domain" stargeproject = "src/main/java"> <! - mybatis3/mybatis3simpleは、すべてのフィールドの構造を自動的に作成します。セッターを使用する代わりに。 - > <プロパティ名= "constructorbased" value = "false"/> <! - ターゲットパッケージに基づいて、データベーススキーマに従ってパッケージの層が生成されます。最終的な生成クラスはこのパッケージの下に配置され、デフォルトはfalseです - > <プロパティ名= "enablesubpackages" value = "true"/> <! - mybatis3/mybatis3simpleは不変のクラスを作成しますか? Trueの場合、MBGはセッターメソッドなしでクラスを作成し、ConstructorBasedに似たクラスに置き換えます - > <プロパティ名= "Immutable" value = "false"/> <! - ルートオブジェクトを設定します。このルートオブジェクトが設定されている場合、生成されたキークラスまたはレコードクラスがこのクラスを継承します。このオプションは、表のルートクラスプロパティでオーバーライドできます。注:キークラスまたはレコードクラスにルートクラスと同じ属性がある場合、MBGは次のような属性を再生しません。1。属性名は同じ、同じタイプ、および同じゲッター/セッターメソッドです。 - > <プロパティname = "rootclass" value = "com._520it.mybatis.domain.basedomain"/> <! - getterメソッドの文字列型フィールドでtrim()メソッドを呼び出すかどうかを設定します - > <プロパティ名= "trimstrings" value = "true"/> </> </javamodelgenerator> <! MyBatis3の後、mapper.xmlファイル +マッパーインターフェイス(またはマッパーインターフェイスを使用しない)を使用するか、マッパーインターフェイス +アノテーションのみを使用できることに注意してください。したがって、JavaclientGeneratorの構成がXMLを生成する必要がある場合、この要素はターゲットパッケージ/ターゲットパッケージで構成する必要があります:javamodelgenerator-> <sqlmapgenerator targetpackage = "データベーススキーマに従って生成されます。最終的な生成クラスはこのパッケージの下に配置され、デフォルトはfalseです - > <プロパティ名= "enablesubpackages" value = "true"/> </sqlmapgenerator> <! - mybatisの場合、マッパーインターフェイスを生成することです。要素が構成されていない場合、マッパーインターフェイスはデフォルトで生成されないことに注意してくださいターゲットパッケージ/ターゲットプロジェクト:javamodelgeneratortypeと同じ:マッパーインターフェイスの生成方法を選択します(mybatis3/mybatis3simpleの下):1。対応するXMLは生成されません。 2。混合マッパー:ハイブリッド構成を使用して、マッパーインターフェイスが生成され、適切な注釈が適切に追加されますが、XMLはXMLで生成されます。 3。XMLMAPPER:マッパーインターフェイスが生成され、インターフェイスはXMLに完全に依存します。コンテキストがmybatis3simpleの場合:annotatedMapperとxmlmapperのみ - > <javaclientgenerator targetpackage = "com._520it.mybatis.mapper" Type = "AnnotatedMapper"ターゲットプロジェクト= "src/main/java"> <スキーマ。最終的な生成クラスはこのパッケージの下に配置されます。デフォルトはfalseになります - > <プロパティ名= "enablesubpackages" value = "true"/> <! - 生成されたすべてのインターフェイスに親インターフェイスを追加できますが、MBGは生成のみを担当し、<プロパティ名= "rootinterface" value = ""/>> 1つ以上のテーブルがあります。テーブル要素によって選択されたテーブルが必要です。次のファイルが生成されます。1。SQLマップファイル2。プライマリキークラスを生成します。 3。Blobと主キーを除く他のフィールドのクラス。 4。BLOBを含むクラス。 5.ユーザーが動的クエリを生成する条件付きクラス(selectbyexample、deletebyexample)、オプション。 6。マッパーインターフェイス(オプション)タブネーム(必要):生成されるオブジェクトのテーブル名。注:ケースに敏感な問題。通常の状況では、MBGはデータベース識別子のケース感度を自動的に識別します。一般に、MBGはセットスキーマ、カタログ、またはタブネームに基づいてデータテーブルを照会し、次のプロセスに従います。1。スキーマ、カタログ、またはタブネームにスペースがある場合、フォーマットセットは正確にクエリに使用されます。 2。それ以外の場合、データベース識別子が大文字になっている場合、MBGはテーブル名を自動的にキャピタルに変換してから検索します。 3.それ以外の場合、データベース識別子が大文字になっている場合、MBGは自動的にテーブル名をキャピタルに変換してから検索します。検索; 4。それ以外の場合は、指定されたケース形式を使用してクエリします。さらに、テーブルの作成時にデータベースオブジェクトを使用する場合、データベース識別子が使用されている場合でも、指定されたケースを使用してテーブル名が作成されます。オプション:1。スキーマ:データベースのスキーマ。 2。カタログ:データベースカタログ。 3。エイリアス:データテーブルに設定されたエイリアス。エイリアスが設定されている場合、すべてのSQLステートメントで生成されたすべてを選択します。列名は次のようになります。Alias_actualColumnName4、domainObjectName:生成されたドメインクラスの名前。設定されていない場合は、テーブル名をドメインクラスの名前として使用します。 somepck.domainnameに設定でき、ドメイン名クラスはsomepckパッケージに自動的に配置されます。 5、enabableInsert(デフォルト真):挿入ステートメントを生成するかどうかを指定します。 6、enableSelectByPrimaryKey(デフォルト真):主キー(つまり、getByidまたはget)に従ってオブジェクトを照会するためのステートメントを生成するかどうかを指定します。 7. enableSelectByexample(デフォルトTrue):MyBatis3Simpleはfalseで、動的クエリステートメントを生成するかどうかを指定します。 8。EnableUpDateByPrimaryKey(デフォルトTrue):主キーに従ってオブジェクトを変更するステートメントを生成するかどうかを指定する(つまり、更新)。 9。InadableDeleteByPrimaryKey(デフォルトTrue):主キー(つまり削除)に従ってオブジェクトを削除するステートメントを生成するかどうかを指定します。 10。EnabledelEtebyexample(デフォルトTrue):MyBatis3SimpleはFALSE、動的削除ステートメントを生成するかどうかを指定します。 11、enablecountByexample(デフォルト真):mybatis3simpleはfalseで、動的クエリの合計数を生成するかどうかを指定します(ページネーションの合計単語の数に使用)。 12、enabableUpdateByexample(デフォルト真):mybatis3simpleはfalseで、動的修正ステートメントを生成するかどうかを指定します(オブジェクトでは空ではない属性のみを変更します)。 13、ModelTyp E:上書きに相当するコンテキスト要素のデフォルトモデルタイプを参照してください。 14、Delimitidentifiers:TableNameの説明を参照してください。デフォルトのDelimitidentifiersは二重引用符であることに注意してください。 mysqlのようなデータベースが `(backquotesを使用する場合、コンテキストのbeginningdelimiterプロパティとenddelimiterプロパティを設定する必要があります)15、delimitallcolumns:SQLのすべての生成された列名が識別子によって引き起こされるかどうかを設定します。 Delimitidentifiersは、コンテキストの財産を参照します。テーブル内の多くのパラメーターは、Javamodelgenerator、コンテキスト、およびその他の要素のデフォルトプロパティの書き直しであることに注意してください。 - > <Table TableName = "userinfo"> <! - javamodelgeneratorのコンストラクトルベースのプロパティを参照 - > <プロパティname = "constructorbased" value = "false"/> <! - デフォルトはfalseです。 Trueに設定した場合、テーブル名は生成されたSQLのカタログまたはスキーマでは追加されません。 - > <プロパティname = "IngrorequalifierSatruntime" value = "false"/> <! - 参照javamodelgenerator不変のプロパティの不変のプロパティ - > <プロパティ名= "Immutable" value = "false"/> <! - ドメインクラスのみを生成するかどうかを指定します。 trueに設定すると、ドメインクラスのみが生成されます。 SQLMapGeneratorも設定されている場合、Mapper XMLファイルでは、結果マップ要素のみが生成されます - > <プロパティ名= "ModelOnly" value = "false"/> <! - javamodelgenerator <プロパティname = "rootclass" value = ""/> <! name = "rootinterface" value = ""/> - > <! - javaclientgenerator <プロパティname = "rootinterface" value = ""/> - > <! - runtimecatalogが設定されている場合、次に、指定されたカタログがテーブル要素のカタログではなく使用されます。 <プロパティ名= "runtimecatalog" value = ""/> - > <! - runtimeschemaが設定されている場合、生成されたSQLでは、テーブル要素のスキーマの代わりに指定されたスキーマが使用されます。 <プロパティ名= "runtimeschema" value = ""/> - > <! - runtimetablenameが設定されている場合、生成されたSQLでは、テーブル要素の代わりに指定されたタブネームが使用されます。 <プロパティ名= "runtimetablename" value = ""/> - > <! - このプロパティはmybatis3simpleにのみ役立つことに注意してください。選択したランタイムがMyBatis3Simpleの場合、SelectAllメソッドが生成されます。 SelectAllorderByClauseが指定されている場合、指定された順序条件がSQLに追加されます。 - > <プロパティ名= "SelectAllorderByClause" value = "age desc、username asc"/> <! - trueに設定されている場合、生成されたモデルクラスは列自体名を直接使用し、生成されたプロパティ名は生まれたものではなく、born_dateではなくBorndateではなく、生成されたプロパティname-> <一次キーを生成する方法を生成します。この要素が設定されている場合、MBGは生成された<inters>要素で正しい<SelectKey>要素を生成します。要素を選択できます列:プライマリキーの列名。 SQLSTATEMENT:生成されるSelectKeyステートメントには、次のオプションがあります。CloudScape:selectKeyに相当するSQL IDIST_VAL_LOCOL()()DB2:SERECTKEYに相当するSQL ID()()()DB2_MF:SQL equibalent from selecte db2_mf:select select_val_livarys is:select SelectKeyに相当するSQL IS:VALUES IDINTING_VAL_LOCOL()HSQLDB:SERECTKEYに相当するSQL IS:call ID()Informix:SelectKeyに相当するSQLは:SELECT DBINFO( 'SQLCA.SQLERRD1')Systables = 1MysQL: last_insert_id()sqlserver:selectkeyに相当するsqlは次のとおりです。SelectScope_Identity()Sybase:SelectKeyに相当するSQLは次のとおりです。Select@@ IdentityJDBC:UseGeneratedKeys = "true"およびKeyProperty属性= ""要素は、テーブルの列名に基づいてオブジェクト属性名を計算する前に列名の名前を変更します。テーブル内の列に、列名:cust_id、cust_name、cust_email、cust_addressなど、一般的な接頭辞文字列がある場合に非常に適しています。次に、検索ストリングを「^cust_」に設定し、空白のスペースに置き換えることができます。次に、生成された顧客オブジェクトの属性名は保管、cu stnameなどではありませんが、id、name、emailに置き換えられ、属性になります:id、name、email; MBGはjava.util.regex.matcher.replaceallを使用して、SearchStringと交換用の置き換えであることに注意してください。 ColornOverRide要素を使用すると、この属性は無効です。 <columnRenAmingRule SearchString = "" applageString = ""/> - > <! - テーブル内の列のプロパティを変更するために使用されます。 MBGは、変更された列を使用してドメインのプロパティを生成します。列:リセットする列名。テーブル要素に複数のコラムオーバーライド要素があることに注意してください〜 - > <ColornOverride column = "username"> <! - プロパティ属性を使用して属性名を指定して列を生成してcolumn - > <プロパティ名= "プロパティ"値= "username"/> <! - javatypeは、生成されたドメインの属性タイプを指定するために使用されます。 <プロパティ名= "javatype" value = ""/> - > <! - jdbctypeは、列のjdbcタイプを指定するために使用されます<プロパティname = "jdbctype" value = ""/> - > <! - タイプハンドラーは、この列で使用されるタイプハンドラーを指定します。指定したい場合は、MyBatisでMyBatis-Config.xmlのTypeHandlerはMyBatis-Config.xmlで生成されないことに注意してください。 value = ""/> - > <! - テーブル要素のdelimitallcolumns構成を参照してください。デフォルトはfalse <false <delimitedcolumnname "value =" ""/> - > </columnoverride> <! - mgbが無視する列を設定します。 Re-Columnが設定されている場合、生成されたドメインで生成されたSQLで、列:無視する列の名前を指定します。 DelimitedColumnName:テーブル要素のDelimitallColumns構成を参照してください。デフォルトはFALSEです。テーブル要素に複数の無視監督要素がある可能性があることに注意してください<IngreColumn column = "Deptid" DelimitedColumnName = ""/> - > </table> </context> </generatorConfiguration>上記は、エディターが紹介したMyBatisジェネレーターの最も完璧な構成ファイルの詳細な説明です(フルバージョン)。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!