Explicação detalhada do arquivo de configuração global MyBatis

Arquivo de configuração global MyBatis

O arquivo de configuração do MyBatis contém informações de configurações e propriedades que afetam profundamente o comportamento do MyBatis. Documento

A estrutura de nível superior é a seguinte:

configuração

• propriedades

• definições

• nomenclatura de tipo typeAliases

• manipulador de tipo typeHandlers

• fábrica de objetos objectFactory

• plugins

• ambientes

• variáveis ​​de ambiente de ambiente

• gerenciador de transações transactionManager

• fonte de dados dataSource

• ID do fornecedor do banco de dados databaseIdProvider

• mapeadores

propriedades

mybatis pode usar propriedades para apresentar o conteúdo de arquivos de configuração de propriedades externas

resource: Introduzir recursos no classpath

url: Introduzir recursos no caminho da rede ou do disco

<properties resource="dbconfig.properties"></properties>

Caso as propriedades sejam configuradas em mais de um local, o MyBatis será carregado na seguinte ordem:

- As propriedades especificadas no corpo do elemento de propriedades são lidas primeiro.

- Em seguida, leia o arquivo de propriedades sob o classpath de acordo com o atributo resource no elemento properties ou leia o arquivo de propriedades de acordo com o caminho especificado pelo atributo url e substitua o atributo read com o mesmo nome. - Por fim, leia o atributo passado como um parâmetro de método e substitua o atributo de leitura com o mesmo nome.

definições

Estas são configurações de ajuste extremamente importantes no MyBatis e irão alterar o comportamento do tempo de execução do MyBatis.

configuração contém muitos itens de configuração importantes

configuração: usado para definir cada item de configuração

nome: definir o nome do item

valor: o valor do item de configuração

mapUnderscoreToCamelCase: CamelCase chamado last_name -> lastName

    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

nomenclatura de tipo typeAliases

typeAliases: você pode definir aliases para cada classe neste pacote em lotes

Os aliases não diferenciam maiúsculas de minúsculas

Crie um alias padrão, que é um nome de classe simples em minúsculas

typeAlias: alias de um tipo java

tipo: especifique o nome completo da classe do tipo a ser alias; o alias padrão é a letra minúscula do nome da classe: funcionário

alias: especifique um novo alias

pacote: aliases de lote para todas as classes em um determinado pacote

nome: especifique o nome do pacote (um alias padrão (nome da classe em minúsculas) para cada classe no pacote atual e todos os pacotes descendentes abaixo)

Problemas existentes:

Suponha que haja uma classe Employee sob o pacote de bean e um subpacote sob o pacote de bean e uma classe chamada Employee. Neste momento, os nomes das classes dos dois pacotes entrarão em conflito, então você também pode usar anotações para criar aliases para a classe

 @Alias ​​("")

Public class Employee {}

É importante notar que MyBatis tem aliases de tipo correspondentes integrados para muitos tipos Java comuns. Eles não fazem distinção entre maiúsculas e minúsculas e não devemos usar apelidos existentes ao criar apelidos.

ambientes

Mybatis pode ser configurado com uma variedade de ambientes. O padrão especifica o uso de um determinado ambiente, que pode alcançar uma troca rápida

ambientes: configure as informações de um ambiente específico; deve haver duas tags, id representa o identificador único do ambiente atual

gerente de transação transactionManager

tipo: O tipo de gerenciador de transações [JDBC (usando as configurações de confirmação e reversão de JDBC, depende da conexão obtida da fonte de dados para gerenciar o escopo da transação). | GERENCIADO (não confirmar ou reverter uma conexão, deixe o contêiner gerencia a transação Todo o ciclo de vida (como o contexto do servidor de aplicativos JEE)]

JDBC: JdbcTransactionFactory

Um gerenciador de transações customizado pode implementar a interface TransactionFactory

fonte de dados dataSource

type: O tipo de fonte de dados [UNPOOLED (Não usar pool de conexão) | POOLED (Usar pool de conexão) | JNDI (Encontre a fonte de dados especificada em contêineres como EJB ou servidor de aplicativos)]

A fonte de dados customizada implementa a interface DataSourceFactory

No desenvolvimento real, usamos Spring para gerenciar a fonte de dados e configurar o controle de transação para cobrir a configuração acima

ID do fornecedor do banco de dados databaseIdProvider

databaseIdProvider: diferentes instruções podem ser executadas de acordo com diferentes fornecedores de banco de dados.

tipo: tipo de banco de dados DB_VENDOR

A função é obter a identificação do fornecedor do banco de dados (o driver vem com ele), mybatis pode executar SQL diferente de acordo com a identificação do fornecedor do banco de dados

MYSQL Oracle SQL Server

valor: um alias para a identificação, conveniente para instruções SQL usarem o atributo databaseId para referência

DB_VENDOR

- Será definido pela string retornada por DatabaseMetaData # getDatabaseProductName (). Uma vez que esta string é geralmente muito longa e diferentes versões do mesmo produto retornarão valores diferentes, é melhor definir um alias de atributo para torná-lo

Encurtar

• As regras de correspondência MyBatis são as seguintes:

- 1. Se a tag databaseIdProvider não estiver configurada, então databaseId = null

- 2. Se a tag databaseIdProvider estiver configurada, use o nome configurado na tag para corresponder às informações do banco de dados e defina databaseId = o valor especificado pela configuração na correspondência, caso contrário, ainda será nulo

- 3. Se o databaseId não for nulo, ele encontrará apenas a instrução SQL que configura o databaseId

- 4. MyBatis irá carregar todas as instruções sem o atributo databaseId e com o atributo databaseId correspondente ao banco de dados atual. Se a mesma instrução com databaseId e sem databaseId for encontrada ao mesmo tempo, o último será descartado.

mapeadores

mapeador: registra um mapeamento sql

Cadastre o perfil

recurso: referencie o arquivo de mapeamento sql no classpath

url: Use o arquivo de mapeamento sql no caminho da rede ou no caminho do disco

Interface de registro

classe: interface do aplicativo citada

1. Arquivo de mapeamento de interface. O nome do arquivo de mapeamento deve ser igual ao nome da interface e colocado no mesmo diretório

2. Não há arquivo de mapeamento sql, todo o sql é escrito na interface com anotações

As anotações são escritas na interface

Recomendação: É mais importante e complicado escrever arquivos de mapeamento sql na interface Dao, não é importante e simples, você pode usar anotações para desenvolvimento rápido

pacote: registro de lote

arquivo de mapeamento sql

namespace: namespace; especificado como o nome completo da classe da interface

id: identificador único

resultType: tipo de valor de retorno

# {id}: Retire o valor id do parâmetro passado

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="school.xauat.mybatis.dao.EmployeeMapper">
    <select id="getEmpById" resultType="employee" >
        select * from tbl_employee where id = #{id}
    </select>
    <select id="getEmpById" resultType="employee" databaseId="mysql">
        select * from tbl_employee where id = #{id}
    </select>
    <select id="getEmpById" resultType="employee" databaseId="oracle">
        select * from tbl_employee where id = #{id}
    </select>
</mapper>

Resumindo

1. A interface está programando

Primitivo: Dao -----> DaoImpl

Mybatis: Mapper -----> xxMapper.xml

2. SqlSession representa uma sessão com o banco de dados, que deve ser fechada quando usada

3. SqlSession, assim como a conexão, não é segura para thread. Você deve obter um novo objeto toda vez que usá-lo

4. A interface do mapeador não possui uma classe de implementação, mas Mybatis irá gerar um objeto proxy para esta interface (vinculando a interface e xml)

EmployeeMapper empMapper = SqlSession.getMapper (Employee.class);

5. Dois arquivos de configuração importantes

Arquivo de configuração global Mybatis; contém informações de pool de conexão de banco de dados, informações do gerenciador de transações, informações de operação do sistema

arquivo de mapeamento sql: salva as informações de mapeamento de cada instrução SQL

Extrair sql

Acho que você gosta

Origin blog.csdn.net/qq_45796208/article/details/110508432
Recomendado
Clasificación