Não fiz um projeto recentemente, por isso reorganizei o arquivo de configuração mais completo para o gerador Mybatis mais completo (MBG para abreviar), com explicações detalhadas, e não preciso mais olhar para o guia do usuário do EN;
<? xml versão = "1.0" Encoding = "utf-8"?> <! Gerador-> <GeneratorConfiguration> <!-pode ser usado para carregar itens de configuração ou arquivos de configuração. Em todo o arquivo de configuração, você pode usar $ {PropertyKey} para fazer referência ao recurso do item de configuração: configure o endereço de carregamento de recursos, use o recurso e o MBG inicia em ClassPath, como com/myProject/generatorconfig.properties URL: Configure carregamento de recursos, use url. Observe que apenas uma das duas propriedades pode ser selecionada; Além disso, se o mybatis-gerador-maven-plugin for usado, as propriedades definidas no pom.xml poderão ser usadas diretamente no generatorconfig.xml <Propriedades Resource = "" Url = ""/>-> <!-Quando o MBG funciona, o pacote de localização do Location/Location "Latch" e o pacote de dependência ""/>-> <!-quando o pacote de localização "é o pacote de dependência que precisa ser carregado para carregar o jarte de lather", para que o pacote de dependência "" "->->-quando o pacote de dependência" "/>-> <!-quando o mbg funciona, o pacote de localização" e o pacote de dependência que precisa ser carregado para carregar o jarro de ladrões "para o lateral" e o pacote de dependência ""/>-<! Arquivos/ibm/sqllib/java/db2java.zip "/>-> <!-Contexto: o ID do ambiente para gerar um grupo de objetos: exigido, ID de contexto, usado para solicitar ao gerar um erro DefeultModelType: especifique o estilo do objeto gerado 1, condicional: semelhante ao hierarquário; 2, plano: todo o conteúdo (chave primária, blob), etc. são gerados em um objeto; 3, hierárquico: a chave primária gera um objeto xxkey (classe de chave), blob etc. gera um objeto separadamente, e outros atributos simples estão em um objeto (classe de gravação) TargetRuntime: 1, MyBatis3: o valor padrão, gera conteúdo baseado no mybatis3.x e acima das versões, incluindo xxxxbysample; 2, mybatis3Simple: semelhante ao mybatis3, mas não gera xxxbySample; introduzidoColumnImpl: o nome totalmente qualificado da classe, usado para estender MBG-> <contexto id = "mysql" defaultModeltype = "hierárquico" TargetRuntime = "mybatis3sImple"> <!-identificar automaticamente o banco de dados palavras, false, se definido, se definido, de acordo com a key; Geralmente, retém o valor padrão, encontre palavras-chave do banco de dados (palavras-chave java), use colunnoverride para substituir-> <propriedades name = "autododelimitKeywords" value = "false"/> <!-codificação de arquivos java gerados-> <names = "javafileEncileDing" value = "utf-88"/> <! value = "org.mybatis.generator.api.dom.defaultjavaformatter"/> <!-formato xml code-> <propriedade name = "xmlformatter" value = "org.mybatis.generator.api.dom.Defaultxmlatter:/> <!-ingressddelimiter e ENDENLIMER Por exemplo, o Oracle é as cotações duplas, e o MySQL padroniza para `backticks; -> <Property name = "Inichedelimiter" value = "` "/> <propriedade name =" enddelimiter "value =" `"/> <!-você deve ter, use esta configuração para vincular o banco de dados @todo: pode ser estendido-> <jdbcconnection driver = "com.mysql.jdbc.drining Driver =" com.mysql.jdbc.dring " Connectionurl = "jdbc: mysql: /// pss" userId = "root" senha = "admin"> <!-Aqui você pode definir propriedades da propriedade, e cada propriedade da propriedade é definida como o driver configurado-> </jdbcConnection> <!-o processador Java é usado para processar os tipos de db para os tipos em java e jav; Observe que, por padrão, você tentará usar o número inteiro, longo, curto, etc. para corresponder a tipos de dados decimais e numéricos; -> <javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverdefaultImpl"> <!-true: use BigDecimal para Decimal e Numérico Tipos de Dados Falso: Falso, Escala> 0; escala = 0; comprimento [5,9]: use inteiro; escala = 0; comprimento <5: use curto; -> <propriedade name = "forcebigDecimals" value = "false"/> </javatyperesolver> <!-O criador do modelo Java são os elementos necessários responsáveis: 1. 2. Classe Java; 3. Classe de consulta TargetPackage: o pacote a ser colocado na classe gerada, o pacote real é controlado pelo atributo EnablesubPackages; TargetProject: o projeto de destino, especifique um diretório existente e o conteúdo gerado será colocado no diretório especificado. Se o diretório não existir, o MBG não criará automaticamente um diretório-> <JavamodelGenerator TargetPackage = "com._520it.mybatis.Domain" TargetProject = "src/main/java"> <!-para cadabatis3/mybatis, que o almôndio, o AlliSIMPLETSTICATASTATICTATION "> em vez de usar setters; -> <Property name = "construtorbased" value = "false"/> <!-Com base no TargetPackage, uma camada de pacote é gerada de acordo com o esquema do banco de dados. A classe final gerada é colocada sob este pacote e o padrão é falso-> <propriedade name = "enablesubpackages" value = "true"/> <!-para mybatis3/mybatis3Simple cria uma classe imutável? Se true, o MBG criará uma classe sem um método do setter e o substituirá por uma classe semelhante ao construtor baseado-> <names name = "imutável" value = "false"/> <!-Defina um objeto root. Se esse objeto raiz estiver definido, a Classe Keyclass gerada ou o registro herdará esta classe; Esta opção pode ser substituída na propriedade Rootclass da tabela Nota: Se houver os mesmos atributos da classe raiz na classe Key ou na classe de registro, o MBG não regenerará esses atributos, incluindo: 1. O nome do atributo é o mesmo, o mesmo tipo e o mesmo método getter/setter; -> <propriedade name = "rootclass" value = "com._520it.mybatis.domain.basedomain"/> <!-Defina se deve chamar o método TRIM () no campo Tipo de sequência no método getter-> <nome da propriedade = "trimstrings" Value = "True"/> </javamodelGenerator> <! Observe que, após o mybatis3, podemos usar o arquivo mapper.xml + interface mapper (ou não usar a interface do mapeador) ou usar apenas a interface do mapeador + anotação. Portanto, se a configuração do JavaclientGenerator precisar gerar XML, esse elemento deve ser configurado com TargetPackage/TargetProject: Igual que JavamodelGenerator-> <SqlmapGenerator TargetPackage = "com._520it.mybatis.Mapper" Target = "Src/Src///////SIGNACTIMPROTENGIMPROJETO) De acordo com o esquema do banco de dados. A classe Gerada Final é colocada sob este pacote e o padrão é falso-> <propriedade name = "enablesubpackages" value = "true"/> </sqlmapgenerator> <!-Para Mybatis, é para gerar uma interface A Mapper. Observe que se o elemento não estiver configurado, a interface do mapeador não será gerada por padrão TargetPackage/TargetProject: Igual que JavamodelGeneratortype: escolha como gerar uma interface de mapeador (em Mybatis3/mybatis3sple): 1. O XML correspondente não será gerado; 2. Mixedmapper: Usando uma configuração híbrida, a interface do mapeador será gerada e a anotação apropriada será adicionada adequadamente, mas o XML será gerado no XML; 3. Xmlmapper: a interface do mapeador será gerada e a interface dependerá completamente do XML; Observe que se o contexto for mybatis3Simple: apenas anotatedmapper e xmlmapper-> <javaclientGenerator TargetPackage = "com._520it.mybatis.mapper" type = "AnoTatedMapper" TargetProject = "src/main/java"> <!-baseado no TargetPack " A classe Gerada Final é colocada sob este pacote, que padrão é false-> <propriedade name = "enablesubpackages" value = "true"/> <!-Você pode adicionar uma interface pai a todas as interfaces geradas, mas o MBG é responsável apenas pela geração e não é responsável por verificar <nome da propriedade "ROOTInterface" = ""/>->->- Pode haver uma ou mais tabelas. Deve haver uma tabela selecionada pelo elemento da tabela. Os seguintes arquivos serão gerados: 1. Arquivo de mapa SQL 2. Gere uma classe de chave primária; 3 classes com outros campos, exceto blob e chave primária; 4. Classes contendo Blob; 5. Uma classe condicional para os usuários gerarem consultas dinâmicas (selectByExample, DeleteByExample), opcional; 6. Interface de mapeador (opcional) nome do tableN (necessário): o nome da tabela do objeto a ser gerado; Nota: problemas sensíveis ao caso. Em circunstâncias normais, o MBG identificará automaticamente a sensibilidade do caso do identificador de banco de dados. Em geral, o MBG consultará a tabela de dados com base no esquema de conjuntos, catálogo ou tablename e seguirá o seguinte processo: 1. Se houver espaços no esquema, catálogo ou tablename, o conjunto de formatos será usado com precisão para consultar; 2. Caso contrário, se o identificador do banco de dados estiver capitalizado, o MBG transformará automaticamente o nome da tabela em capital e depois pesquisará; 3. Caso contrário, se o identificador do banco de dados estiver capitalizado, o MBG transformará automaticamente o nome da tabela em capital e depois pesquisará; Procurar; 4. Caso contrário, use o formato de caso especificado para consultar; Além disso, se o objeto do banco de dados for usado ao criar uma tabela, o nome da tabela será criado usando o caso especificado, mesmo que o identificador do banco de dados seja usado, neste caso, defina o delimitIdentifiers = "true" para reter o formato do caso; Opcionalmente: 1. Esquema: o esquema do banco de dados; 2. Catálogo: o catálogo do banco de dados; 3. Alias: o alias definido para a tabela de dados. Se o alias for definido, tudo seleciona gerado nas instruções SQL, o nome da coluna se tornará: alias_actualColumnName4, domainObjectName: o nome da classe de domínio gerada. Se não estiver definido, use o nome da tabela como o nome da classe de domínio; Ele pode ser definido como SHOWPCK.DOMAINNAME, então a classe DomainName será automaticamente colocada no pacote algumpck; 5, enableInsert (padrão true): especifique se deve gerar instrução de inserção; 6, EnableSelectByPrimaryKey (padrão true): especifique se deve gerar a instrução para consultar o objeto de acordo com a chave primária (ou seja, getById ou get); 7. EnableSelectByExample (padrão true): mybatis3Simple é falso, especificando se deve gerar declarações de consulta dinâmica; 8. EnableUpdateByPrimaryKey (padrão true): especificando se deve gerar uma declaração que modifica o objeto de acordo com a chave primária (ou seja, atualização); 9. EnableteleteByPrimaryKey (padrão true): especificando se deve gerar uma declaração que exclua o objeto de acordo com a chave primária (ou seja, excluir); 10. Enabledel etebyExample (padrão true): mybatis3Simple é falso, especifique se deve gerar instruções de exclusão dinâmica; 11, EnableCountByExample (padrão true): Mybatis3Simple é falso, especifique se deve gerar um número total de palavras da consulta dinâmica (usada para o número total de palavras para paginação); 12, enableUpdateByExample (padrão true): mybatis3Simple é falso, especifique se deve gerar instruções de modificação dinâmica (apenas modifique os atributos que não estão vazios no objeto); 13, ModelTyp E: consulte o DefaultModelType do elemento de contexto, que é equivalente à substituição; 14, DelimitIdentifiers: Consulte a explicação do tableName, observe que os DelimitIdentifiers padrão são citações duplas. Se um banco de dados como o MySQL usar `(backquotes, você também precisará definir as propriedades Iniciamento do contexto e o EndDelimiter) 15, DelimitAllColumns: Defina se todos os nomes de colunas gerados no SQL são causados por identificadores. DelimitIdentifiers se referem à propriedade do contexto. Observe que muitos parâmetros da tabela são uma reescrita das propriedades padrão do JavamodelGenerator, contexto e outros elementos; -> <tabela tablename = "userInfo"> <!-Reference a propriedade baseada em construtor de javamodelGenerator-> <propriedade name = "construtorbased" value = "false"/> <!-padrão é false. Se definido como true, o nome da tabela não será adicionado com catálogo ou esquema no SQL gerado; -> <Propriedade name = "ignorequalifiersArtuntime" value = "false"/> <!-Reference JavamodelGenerator A propriedade imutável da propriedade imutável-> <nome da propriedade = "imutável" value = "false"/> <!-especifica se deve gerar apenas a classe de domínio. Se definido como true, apenas a classe de domínio é gerada. Se o SQLMapGenerator também estiver configurado, no arquivo mapeador XML, apenas o elemento resultante é gerado-> <propriedade name = "modelonly" value = "false"/> <!-consulte a propriedade rootclass do javamodelGenerator <nome da propriedade "rootclass" = ""/>-> <! name = "rootinterface" value = ""/>-> <!-Consulte a propriedade RootInterface do javaclientGenerator <propriedades name = "rootinterface" value = ""/>-> <!-se runtimecatalog for definido, então no SQL gerado, o catalog especificado é usado em vez do catalog no elemento tabela. <propriedade name = "runtimecatalog" value = ""/>-> <!-Se o RunTimesChema for definido, então no SQL gerado, o esquema especificado é usado em vez do esquema no elemento da tabela. <propriedade name = "runTimesChema" value = ""/>-> <!-Se RunTimetableName for definido, então no SQL gerado, o nome do tablete especificado é usado em vez do elemento da tabela. <propriedade name = "runtimetableName" value = ""/>-> <!-Observe que esta propriedade é útil apenas para mybatis3Simple; Se o tempo de execução selecionado for Mybatis3Simple, um método selectAll será gerado. Se o SelectAllorderByCláuse for especificado, a condição de ordem especificada será adicionada ao SQL; -> <propriedade name = "selectAllOrderByClause" Value = "Age Desc, Nome de usuário ASC"/> <!-Se definido como true, a classe de modelo gerada usará diretamente o nome da coluna e não usará mais os métodos de nomeação de camelos, como o NOMETUMENOTEMENTETUMENSTEMENSTEMENSETHETHENEMENTESTEMENSTEMENSETHETHETHETHETHETHETHETHETHETHETHETHETHETHETHETHETHETHETH) como Born_Date e o nome da propriedade gerada é Born_date, não BornDate "(Nome" USAC ", e o Nome de Born4), e o Nome da Propriedade Gerada, e não BornTen! Para gerar um método para gerar uma chave primária. Se esse elemento estiver definido, o MBG gerará um elemento <SelectKey> correto no elemento gerado <Insert>. O elemento pode ser selecionado coluna: o nome da coluna da chave primária; sqlStatement: The selectKey statement to be generated has the following options: Cloudscape: The SQL equivalent to selectKey is: VALUES IDENTITY_VAL_LOCAL()()DB2: The SQL equivalent to selectKey is: VALUES IDENTITY_VAL_LOCAL()()DB2_MF: The SQL equivalent to selectKey is: SELECT IDENTITY_VAL_LOCAL() FROM Sysibm.sysdummy1derby: o SQL equivalente ao selectKey é: valores identity_val_local () hsqldb: o SQL equivalente a selecionar SelectKey é: Selecione LAST_INSERT_ID () SQLSERVER: O SQL equivalente a selecionar sqlstatement = ""/>-> <!-Este elemento renomeará o nome da coluna antes de calcular o nome do atributo do objeto com base no nome da coluna na tabela. É muito adequado para quando as colunas da tabela têm seqüências de prefixos comuns, como o nome da coluna: cust_id, cust_name, cust_email, cust_address, etc.; Em seguida, você pode definir a Pesquisa como "^cust_" e substituí -lo por espaço em branco. Em seguida, o nome do atributo no objeto do cliente gerado não é custh, cu ston, etc., mas é substituído por identificação, nome, email e depois se torna atributos: id, nome, email; Observe que o MBG usa java.util.regex.matcher.replaceall para substituir o SearchString e o Replacestring. Se o elemento colunnoverride for usado, esse atributo será inválido; <ColumnrenamingRule searchstring = "" replacestring = "" "/>-> <!-usado para modificar as propriedades de uma coluna na tabela. O MBG usará a coluna modificada para gerar as propriedades do domínio; coluna: o nome da coluna a ser redefinido; Observe que pode haver vários elementos de colunnoverride em um elemento da tabela ~-> <colunnoverride colun = "nome de usuário"> <!-use atributo da propriedade para especificar o nome do atributo para gerar a coluna-> <names name = "Property" value = "nome de usuário"/> <!-Javatype é usado para especificar o tipo de atributo do gênero. <propriedade name = "javatype" value = ""/>-> <!-jdbctype é usado para especificar o tipo JDBC da coluna <propriedades name = "jdbcType" value = ""/>-> <!-TypeHandler é usado para especificar o tipondler do tipo usado nesta coluna. Se você deseja especificar, observe que em mybatis, o TypeHandler em mybatis-config.xml não será gerado em mybatis-config.xml, apenas a descrição do parâmetro do seguinte: onde # #{id, jdbctype = bigint, typeHandler = com._520it.mybatis, name = "jdbctype" value = ""/>-> <!-Consulte a configuração DelimitAllColumns do elemento da tabela, o padrão é false <propriedades name = "delimitedColumnName" value = ""/>-> </colunnoverride> <!-ignorecolumn Sets a coluna que mgbrgn. Se uma re-coluna estiver definida, no domínio gerado e SQL gerado, coluna: especifica o nome da coluna a ser ignorado; DelimitedColumnName: consulte a configuração DelimitAllColumns do elemento da tabela, o padrão é falso. Observe que pode haver vários elementos de ignorância em um elemento da tabela <ignorecolumn column = "deptId" delimitedColumnName = "" "/>-> </ table> </xexext> </generatorconfiguration>O exposto acima é a explicação detalhada do arquivo de configuração mais perfeito do gerador Mybatis introduzido pelo editor (versão completa). Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!