Prefácio
A maioria dos projetos agora usa Mybatis, mas algumas empresas usam o Hibernate. A maior característica do uso do mybatis é que o SQL precisa ser escrito por si só, e a redação do SQL requer a passagem de vários parâmetros. Enfrentando vários cenários de negócios complexos, os parâmetros de aprovação também são um tipo de conhecimento.
Abaixo, resumimos os seguintes métodos de transmissão de vários parâmetros.
Método 1: Método de transferência de parâmetros seqüenciais
Os números em #{} representam a ordem em que você passa nos parâmetros.
Não é recomendável que este método seja usado, a expressão da camada SQL não é intuitiva e os erros tendem a ocorrer assim que a ordem é ajustada.
Método 2: Método de anotação @param de parâmetros de passagem
O nome em #{} corresponde ao nome modificado nos colchetes da anotação @param.
Esse método é bastante intuitivo quando não há muitos parâmetros, por isso é recomendável usá -lo.
Método 3: Método de transferência de parâmetros do mapa
O nome em #{} corresponde ao nome da chave no mapa.
Este método é adequado para passar vários parâmetros e os parâmetros são voláteis e podem ser transmitidos com flexibilidade.
Método 4: Método de transferência de parâmetros de feijão Java
O nome em #{} corresponde aos atributos do membro na classe de usuário.
Esse método é muito intuitivo, mas requer a construção de uma classe de entidade. Não é fácil de expandir. Requer adição de atributos para usar de acordo com a situação.
Método de passagem de parâmetros ao usar a interface do mapeador
Quando o Mybatis usa a interface do mapeador para programação, a camada subjacente usa um mecanismo dinâmico de proxy, que é chamado na superfície, mas, de fato, é através do método correspondente de SQLSession chamado pelo proxy dinâmico, como o selectOne (). Os amigos interessados podem verificar o método getMapper () de defaultSQLSession, que acabará por obter um objeto MapperProxy que proxys a interface do Mapper. Quando o objeto MapperProxy chama o método da interface do mapeador, ele converterá os parâmetros passados e, em seguida, usa os parâmetros convertidos como parâmetro para chamar os métodos de operação correspondentes correspondentes ao SQLSession (como SelectOne, Insert etc.). O processo de conversão pode ser implementado com referência ao método Execute () do MAPPPERMETHOD. Simplificando, as seguintes regras:
1. Se a passagem passada for um parâmetro único e não for nomeado com a anotação @param, o método correspondente de SQLSession será chamado diretamente com o parâmetro único como o parâmetro real.
2. Se o passado não for um único parâmetro ou contiver parâmetros nomeados com anotação @param, o parâmetro correspondente será convertido em um mapa para passagem. As regras específicas são as seguintes:
2.1. Os parâmetros correspondentes serão armazenados como chaves no mapa de destino na forma de param1, param2 e paramn em ordem. O primeiro parâmetro é param1 e o enésimo parâmetro é paramn.
2.2. Se o parâmetro for um parâmetro nomeado com a anotação @param, ele será armazenado no mapa de destino com o nome especificado por @param como a chave.
2.3. Se os parâmetros não receberem o nome da anotação @param, eles serão armazenados como chaves no mapa de destino na forma de 0, 1 e n em ordem. O primeiro parâmetro é 0 e o enésimo parâmetro é N.
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.