Saya belum melakukan proyek baru -baru ini, jadi saya telah mengatur ulang file konfigurasi paling lengkap untuk generator mybatis yang paling lengkap (singkatnya MBG), dengan penjelasan terperinci, dan saya tidak lagi harus melihat panduan pengguna EN;
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype GeneratorConfigurationPublic "-// mybatis.org//dtd Mybatis Generator Configuration 1.0 // EN" "http://mybatis.org/dtd/dtd/dtd/genator>" ""-genor. "-genor_dtd/dtd/dtd/dtd." Generator-> <GeneratorConfiguration> <!-Dapat digunakan untuk memuat item konfigurasi atau file konfigurasi. Di seluruh file konfigurasi, Anda dapat menggunakan $ {PropertyKey} untuk merujuk sumber daya item konfigurasi: Konfigurasikan alamat pemuatan sumber daya, gunakan sumber daya, dan MBG mulai dari ClassPath, seperti Com/MyProject/GeneratorConfig.properties URL: Configure Resource Loading Geology, gunakan URL, seperti file: ///////c:/c:/c:/c: c:/c: c:/c: c:/co: m:/c: c: c: c: c: c: c: co: c: c: c: moilk. Perhatikan bahwa hanya satu dari dua properti yang dapat dipilih; Selain itu, jika mybatis-generator-maven-plugin digunakan, maka properti yang didefinisikan dalam pom.xml dapat digunakan secara langsung di generatorconfig.xml <properties sumber daya = "" url = ""/>-> <!-ketika MBG berfungsi, atribut load dari paket ketergantungan yang perlu dimuat untuk dimuat ke jalur lengkap. " File/IBM/SQLLIB/JAVA/DB2JAVA.ZIP "/>-> <!-Konteks: ID lingkungan untuk menghasilkan kelompok objek: diperlukan, ID konteks, digunakan untuk meminta ketika menghasilkan kesalahan defaultModeltype: tentukan gaya objek 1 yang dihasilkan, bersyarat: serupa dengan hierarkis; 2, datar: semua konten (kunci utama, gumpalan), dll. Dihasilkan dalam satu objek; 3, Hierarkis: Kunci utama menghasilkan objek XXKEY (kelas kunci), gumpalan, dll. Menghasilkan objek secara terpisah, dan atribut sederhana lainnya ada dalam satu objek (kelas rekaman) TargetRuntime: 1, mybatis3: nilai default, menghasilkan konten berdasarkan versi mybatis3.x dan di atas, termasuk xxxbysample; 2, MyBatis3Simple: Mirip dengan MyBATIS3, tetapi tidak menghasilkan sampel XXXBYS; Pengenalan ColumnImpl: Nama kelas yang sepenuhnya memenuhi syarat, yang digunakan untuk memperluas mbg-> <context id = "mysql" defaultModeltype = "hierarkis" targetruntime = "mybatis3simple"> <!-secara otomatis mengidentifikasi kata kunci database, default false, jika disetel ke true, menurut kata kata kunci yang ditentukan pada Sejase yang ditentukan pada SQL yang ditentukan pada TQ yang ditentukan pada SQL yang ditentukan pada TQ yang ditentukan. Secara umum mempertahankan nilai default, ambil kata kunci database (kata kunci java), gunakan columnOverride untuk mengganti-> <name properti = "autodelimitkeywords" value = "false"/> <!-pengkodean java yang dihasilkan-<nama properti = "javafileencoding" value = "value =" format java "<fulevan =" format! value = "org.mybatis.generator.api.dom.defaultjavaformatter"/> <!-format kode xml-> <name properti = "xmlformatter" value = "org.mybatis.generator.api.dom.defaultxmlformatter"/<!-begineror.api. Misalnya, Oracle adalah kutipan ganda, dan mysql default ke `backticks; -> <name properti = "startDelImiter" value = "` "/> <name properti =" endDelimiter "value =" `"/> <!-Anda harus memilikinya, gunakan konfigurasi ini untuk menautkan database @todo: dapatkah itu diperluas-> <jdbcconnection driverclass = "com.mysql.jdbc.driver: psn" jdbcconnection = "com.mysql.jdbc.driver. userId = "root" password = "admin"> <!-Di sini Anda dapat mengatur properti properti, dan setiap properti properti diatur ke driver yang dikonfigurasi-> </jdbcconnection> <!-Prosesor Java Type digunakan untuk memproses jenis dalam DB untuk mengetik di Java, dan JavatypereSolverDefaultImpl digunakan oleh default; Perhatikan bahwa secara default, Anda akan mencoba menggunakan Integer, Long, Short, dll. Untuk sesuai dengan tipe data desimal dan numerik; -> <javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverDefaultImpl"> <!-True: Gunakan BigDecimal untuk tipe data desimal dan numerik Fale: Default, skala> 0; Panjang> 18: Gunakan BigDecimal = SCALE = 0; skala = 0; panjang [5,9]: Gunakan integer; skala = 0; panjang <5: Gunakan pendek; -> <name properti = "forcebigdecimals" value = "false"/> </javatyperesolver> <!-pencipta model java adalah elemen yang diperlukan yang bertanggung jawab: 1. Kelas kunci (lihat Konteks DefaultModeltype); 2. Kelas Java; 3. Kelas kueri TargetPackage: Paket yang akan ditempatkan di kelas yang dihasilkan, paket nyata dikendalikan oleh atribut EnableSubPackages; TargetProject: Proyek target, tentukan direktori yang ada, dan konten yang dihasilkan akan ditempatkan di direktori yang ditentukan. If the directory does not exist, MBG will not automatically create a directory--><javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java"><!-- for MyBatis3/MyBatis3Simple automatically creates a constructor for each generated class, which contains all fields; bukannya menggunakan setter; -> <nama properti = "valuebased" value = "false"/> <!-Berdasarkan targetPackage, lapisan paket dihasilkan sesuai dengan skema database. Kelas final yang dihasilkan ditempatkan di bawah paket ini, dan standarnya false-> <properti name = "enableSubpackages" value = "true"/> <!-untuk mybatis3/mybatis3simple menciptakan kelas yang tidak dapat diubah? Jika benar, MBG akan membuat kelas tanpa metode setter, dan menggantinya dengan kelas yang mirip dengan ConstructorBased-> <properti name = "Immutable" value = "false"/> <!-Tetapkan objek root. Jika objek root ini diatur, KeyClass yang dihasilkan atau RecordClass akan mewarisi kelas ini; Opsi ini dapat diganti dalam properti RootClass dari tabel Catatan: Jika ada atribut yang sama dengan kelas root di kelas kunci atau kelas rekaman, MBG tidak akan meregenerasi atribut ini, termasuk: 1. Nama atributnya sama, jenis yang sama, dan metode pengambil/setter yang sama; -> <name properti = "rootclass" value = "com._520it.mybatis.domain.basedomain"/> <!-atur apakah akan memanggil metode trim () pada bidang tipe string dalam metode getter-> <name properti = "trimstrings" value = "true"/> </javaModelgenerator> <!-xMl "value =" true "/</javaModelgenerator> <!-xmin generor. Perhatikan bahwa setelah mybatis3, kita dapat menggunakan antarmuka file mapper.xml + mapper (atau tidak menggunakan antarmuka mapper), atau hanya menggunakan antarmuka mapper + anotasi. Oleh karena itu, jika konfigurasi JavaClientGenerator perlu menghasilkan XML, elemen ini harus dikonfigurasi dengan TargetPackage/TargetProject: Sama seperti javamodelgenerator-> <sqlmapgenerator targetpackage = "com._520it.mybatis.mapper" targetProject = "src/main/sumber daya" target "target" sumber " Skema Basis Data. Kelas final yang dihasilkan ditempatkan di bawah paket ini, dan standarnya false-> <properti name = "enableSubpackages" value = "true"/> </sqlmapgenerator> <!-untuk mybatis, itu untuk menghasilkan antarmuka mapper. Perhatikan bahwa jika elemen tidak dikonfigurasi, antarmuka mapper tidak akan dihasilkan oleh targetpackage/TargetPrOpject default: Sama seperti javaModelGenerATorType: Pilih cara menghasilkan antarmuka mapper (di bawah interface -incruce -in -incriping): 1. AnnotatedMapper: Ini akan menghasilkan antarmuka mapper menggunakan penyatuan mapper). XML tidak akan dihasilkan; 2. MixedMapper: Menggunakan konfigurasi hybrid, antarmuka mapper akan dihasilkan dan anotasi yang sesuai akan ditambahkan dengan tepat, tetapi XML akan dihasilkan dalam XML; 3. XMLMapper: Antarmuka mapper akan dihasilkan, dan antarmuka akan sepenuhnya tergantung pada XML; Perhatikan bahwa jika konteksnya adalah MyBatis3Simple: Only AnnotatedMapper dan XMLMapper-> <JavaClientGenerator TargetPackage = "com._520it.mybatis.mapper" type = "annotatedMapper" targetPromject = "src/main/java"> <!-berdasarkan target. Kelas akhir yang dihasilkan ditempatkan di bawah paket ini, yang default ke false-> <properti name = "EnableSubPackages" value = "true"/> <!-Anda dapat menambahkan antarmuka induk ke semua antarmuka yang dihasilkan, tetapi MBG hanya bertanggung jawab untuk pembangkitan dan tidak bertanggung jawab untuk memeriksa <nama properti = "rootinterface" value = ""//--</javac. Mungkin ada satu atau lebih tabel. Harus ada tabel yang dipilih oleh elemen tabel. File berikut akan dihasilkan: 1. File peta SQL 2. Hasilkan kelas kunci utama; 3. Kelas dengan bidang lain kecuali gumpalan dan kunci utama; 4. Kelas yang mengandung gumpalan; 5. Kelas bersyarat bagi pengguna untuk menghasilkan kueri dinamis (SelectByExample, DeleteByExample), opsional; 6. Mapper Interface (Opsional) Tablename (Diperlukan): Nama tabel objek yang akan dihasilkan; Catatan: Masalah sensitif kasus. Dalam keadaan normal, MBG akan secara otomatis mengidentifikasi sensitivitas kasus pengidentifikasi database. Secara umum, MBG akan menanyakan tabel data berdasarkan skema yang ditetapkan, katalog, atau tableName, dan mengikuti proses berikut: 1. Jika ada spasi dalam skema, katalog atau tableName, maka set format secara akurat digunakan untuk meminta; 2. Jika tidak, jika pengidentifikasi database dikapitalisasi, maka MBG akan secara otomatis mengubah nama tabel menjadi modal dan kemudian mencari; 3. Jika tidak, jika pengidentifikasi database dikapitalisasi, maka MBG akan secara otomatis mengubah nama tabel menjadi modal dan kemudian mencari; Mencari; 4. Jika tidak, gunakan format kasus yang ditentukan untuk meminta; Selain itu, jika objek database digunakan saat membuat tabel, nama tabel akan dibuat menggunakan kasing yang diberikan bahkan jika pengidentifikasi database digunakan, dalam kasus ini, harap atur DelimitIdentifiers = "true" untuk mempertahankan format kasus; Secara opsional: 1. Skema: Skema database; 2. Katalog: Katalog Basis Data; 3. Alias: Alias ditetapkan untuk tabel data. Jika alias diatur, maka semua pilihan yang dihasilkan dalam pernyataan SQL, nama kolom akan menjadi: alias_actualColumnName4, domainObjectName: Nama kelas domain yang dihasilkan. Jika tidak diatur, gunakan nama tabel sebagai nama kelas domain; Ini dapat diatur ke somepck.domainname, maka kelas domainName akan ditempatkan secara otomatis dalam paket somepck; 5, EnableInsert (Default True): Tentukan apakah akan menghasilkan pernyataan insert; 6, EnableSelectByPrimaryKey (default true): Tentukan apakah akan menghasilkan pernyataan untuk menanyakan objek sesuai dengan kunci utama (mis. GetById atau GET); 7. MengaktifkanelectByExample (default true): MyBATIS3Simple adalah FALSE, menentukan apakah akan menghasilkan pernyataan kueri dinamis; 8. EnableupDateByPrimaryKey (default true): Menentukan apakah akan menghasilkan pernyataan yang memodifikasi objek sesuai dengan kunci utama (mis. Pembaruan); 9. enableDeLetyPrimaryKey (default true): menentukan apakah akan menghasilkan pernyataan yang menghapus objek sesuai dengan kunci utama (mis. Hapus); 10. Enabledel EtebyExample (default true): MyBATIS3Simple adalah false, tentukan apakah akan menghasilkan pernyataan penghapusan dinamis; 11, EnableCountByExample (default true): MyBATIS3Simple adalah FALSE, tentukan apakah akan menghasilkan kueri dinamis jumlah total kata (digunakan untuk jumlah total kata untuk pagination); 12, EnableUpdateByExample (default true): MyBATIS3Simple adalah false, tentukan apakah akan menghasilkan pernyataan modifikasi dinamis (hanya memodifikasi atribut yang tidak kosong dalam objek); 13, MODELTYP E: Lihat defaultModeltype dari elemen konteks, yang setara dengan timpa; 14, DelimitIdentifiers: Lihat penjelasan Tablename, perhatikan bahwa DelimitIdentifiers default adalah kutipan ganda. Jika database seperti MySQL menggunakan `(backquotes, maka Anda juga perlu mengatur properti awal konteks dan enddelimiter) 15, DelimitAllColumns: Tetapkan apakah semua nama kolom yang dihasilkan dalam SQL disebabkan oleh pengidentifikasi. Delimitentifiers merujuk pada properti konteks. Perhatikan bahwa banyak parameter dalam tabel adalah penulisan ulang properti default JavaModelGenerator, konteks dan elemen lainnya; -> <Table TableName = "UserInfo"> <!-Referensi properti JavamodelGenerator-> <properti nama = "value" value = "false"/> <!-default false. Jika diatur ke True, nama tabel tidak akan ditambahkan dengan katalog atau skema di SQL yang dihasilkan; -> <name properti = "abploqualifiersatruntime" value = "false"/> <!-referensi javamodelgenerator properti abadi dari properti abadi-> <nama properti = "tidak dapat diubah" value = "false"/> <!-menentukan apakah hanya akan menghasilkan kelas domain. Jika diatur ke true, hanya kelas domain yang dihasilkan. Jika SQLMapGenerator juga dikonfigurasi, maka dalam file Mapper XML, hanya elemen Hasil yang dihasilkan-> <name properti = "ModelOnly" value = "false"/> <!-lihat properti rootclass dari properti Javamodelgenerator <properti = "rootclass" value = "" "/>-<! name = "rootInterface" value = ""/>-> <!-lihat properti rootInterface dari JavaClientGenerator <properti name = "rootInterface" value = ""/>-> <!-Jika runtimecatalog diatur, lalu di elemen yang dihasilkan, katalog yang ditentukan digunakan alih-alih katalog pada tabel. <nama properti = "runtimecatalog" value = ""/>-> <!-Jika runtimeschema diatur, maka dalam SQL yang dihasilkan, skema yang ditentukan digunakan sebagai pengganti skema pada elemen tabel. <nama properti = "runtimeschema" value = ""/>-> <!-Jika runtimetableName diatur, maka di SQL yang dihasilkan, tableName yang ditentukan digunakan sebagai pengganti elemen tabel. <name properti = "runtimetableName" value = ""/>-> <!-Perhatikan bahwa properti ini hanya berguna untuk mybatis3simple; Jika runtime yang dipilih adalah MyBATIS3Simple, metode SelectAll akan dihasilkan. Jika SelectAllOrdyByClause ditentukan, kondisi pesanan yang ditentukan akan ditambahkan ke SQL; -> <name properti = "selectAllOrdyClause" value = "usia desc, nama pengguna ASC"/> <!-Jika diatur ke true, kelas model yang dihasilkan akan secara langsung menggunakan nama kolom itu sendiri, dan tidak akan lagi menggunakan metode penamaan unta, seperti born_date, dan nama properti yang dihasilkan, "tidak ada," namanya, "namanya," namanya, "name," name properto, "name, dan name gener-name," name, "name a name =" name, "name lebah" menghasilkan metode untuk menghasilkan kunci utama. Jika elemen ini diatur, MBG akan menghasilkan elemen <secteksi> yang benar dalam elemen <sertak> yang dihasilkan. Elemen dapat dipilih kolom: nama kolom kunci utama; SQLSTATEMENT: Pernyataan SelectKey yang akan dihasilkan memiliki opsi berikut: Cloudscape: SQL setara dengan SelectKey adalah: Nilai identity_val_local () () db2: SQL Equalival To SelectKey adalah: Nilai Identity_Val_Local () () DB2_MF: SQL EQUIVALTITY_VAL_LOCAL () () () DB2_MF: SQL SQL EQUIVALTITY_VALETET_LOCED () () () DB2_MF: SQL SQL: SQL EQUIVALETITY_VALTED ADA Sysibm.sysdummy1derby: SQL setara dengan SelectKey adalah: nilai identity_val_local () hsqldb: SQL yang setara dengan selectKey adalah: call identity () informix: SQL yang setara dengan selectKey adalah: SELECT DBINFO ('SQLCA.SQLERRD1) dari SQLCADY = 1 SQLCA / SQLRD1') dari SQLCAB1 ') dari SQLCAY = SQLCA.SQLERRD1') dari SQLCAD1) dari SQLCAD1) dari SQLCA.SQLRD1 ') dari SQLCAD1) dari SQLCA.SQLRD1') dari SQLCAD1) dari SQLCAY ') dari SQLCA. IS: SELECT LAST_INSERT_ID () SQLSERVER: SQL Equivalent to SelectKey adalah: SELECT SCOPE_IDENTITY () SYBASE: SQL Equivalent to SelectKey adalah: Select @@ IdentityJDBC: Ini setara dengan penambahan USEGENTUREDKEYS = "True" dan KeyProperty Attributes pada generasi Generateder = "True" dan KeyProperty atributes pada hasil yang dihasilkan Generateding = "true" dan keyproperty atribute yang dihasilkan Generateding = "True" dan keyproperty atributsy pada hasil yang dihasilkan Generateding = "true" dan keyproperty atributsy Generated Columne = SQLStATEMENT = ""/>-> <!-Elemen ini akan mengganti nama nama kolom sebelum menghitung nama atribut objek berdasarkan nama kolom dalam tabel. Sangat cocok untuk ketika kolom dalam tabel memiliki string awalan yang umum, seperti nama kolom: cust_id, cust_name, cust_email, cust_address, dll.; Kemudian Anda dapat mengatur pencarian ke "^cust_" dan menggantinya dengan ruang kosong. Kemudian nama atribut dalam objek pelanggan yang dihasilkan bukan custid, cu stname, dll., Tetapi diganti dengan id, nama, email, dan kemudian menjadi atribut: id, nama, email; Perhatikan bahwa MBG menggunakan java.util.regex.matcher.replaceall untuk menggantikan pencarian dan penggantian. Jika elemen ColumnoverRide digunakan, atribut ini tidak valid; <columnrenamingrule searchString = "" replacestring = ""/>-> <!-Digunakan untuk memodifikasi properti kolom dalam tabel. MBG akan menggunakan kolom yang dimodifikasi untuk menghasilkan sifat -sifat domain; Kolom: Nama kolom yang akan diatur ulang; Perhatikan bahwa dapat ada beberapa elemen columnoverride dalam elemen tabel ~-> <columnoverride column = "username"> <!-Gunakan atribut properti untuk menentukan nama atribut untuk menghasilkan kolom-> <name properti = "properti" value = "nama pengguna"/> <!-javatype digunakan untuk menentukan jenis atribut dari domain yang dihasilkan, dan tipe yang dikualifikasikan. <nama properti = "javatype" value = ""/>-> <!-jdbctype digunakan untuk menentukan jenis jdbc dari kolom <name properti = "jdbctype" value = ""/>-> <!-TypeHandler digunakan untuk menentukan typeHandler yang digunakan dalam kolom ini. Jika Anda ingin menentukan, harap dicatat bahwa di mybatis, typeHandler di mybatis-config.xml tidak akan dihasilkan di mybatis-config.xml, hanya deskripsi parameter dari yang berikut: di mana id = #{id, jdbctype = bigint, typeHandler = com._520it.mybatis. " value = ""/>-> <!-Lihat konfigurasi DelimitAllColumns dari elemen tabel, default adalah false <name properti = "DelimitedColumnName" value = ""/>-> </ColumnoverRide> <!-Ignorecolumn menetapkan kolom yang diabaikan MGB. Jika kolom ulang diatur, maka dalam domain yang dihasilkan dan SQL yang dihasilkan, kolom: Menentukan nama kolom yang akan diabaikan; DelimitedColumnName: Lihat konfigurasi DelimitAllColumns dari elemen tabel, default salah. Perhatikan bahwa dapat ada beberapa elemen IgnorEcolumn dalam elemen tabel <colom ignorecolumn = "deptid" DelimitedColumnName = ""/>-> </ablepDi atas adalah penjelasan terperinci dari file konfigurasi paling sempurna dari generator mybatis yang diperkenalkan kepada Anda oleh editor (versi lengkap). Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!