Popularização rápida
1. O que é mybatis
Mybatis é uma excelente estrutura de camada de persistência que suporta consultas SQL simples, procedimentos armazenados e mapeamento avançado.
O MYBATIS elimina as configurações manuais de quase todo o código e parâmetros JDBC e o encapsulamento de pesquisa do conjunto de resultados. O Mybatis pode usar XML simples ou anotações para configuração e mapeamento original, interfaces de mapeamento e POJOS de Java (objetos Java antigos simples) para registros no banco de dados.
Mybatis implementa a ligação da interface, tornando mais conveniente o uso.
Mapeamento de relacionamento com objetos aprimorado, mais eficiente
O Mybatis usa poderosas expressões baseadas em OGNL para eliminar outros elementos.
2. Arquitetura funcional
3. Processo de execução
Explicação detalhada do princípio:
O aplicativo mybatis cria um SQLSessionFactory com base no arquivo de configuração XML. A configuração vem de dois lugares de acordo com a configuração, um é o arquivo de configuração e o outro é a anotação do código Java e obtém uma SQLSession. O SQLSession contém todos os métodos necessários para executar o SQL. Você pode executar diretamente as instruções SQL mapeadas através da instância do SQLSession para concluir a adição de dados, exclusão, modificação e consulta, envio de transações, etc. e fechar o SQLSession após o uso.
Vamos dar uma olhada nos pontos -chave deste artigo. Mybatis Anotações simples
Palavras de anotação chave:
@Insert: Inserir SQL, a sintaxe é exatamente a mesma que XML Insert SQL
@Select: Query SQL, e a sintaxe é exatamente a mesma que XML Select SQL
@Update: Atualize SQL, e a sintaxe do XML Update SQL é exatamente o mesmo
@Delete: exclua SQL, e a sintaxe é exatamente a mesma que XML excluir SQL
@Param: insira o ginseng
@Results: Coleção de resultados
@Result: resultados
1. Modelo de domínio:
classe pública userdo {private longo id; private string nome de usuário; data privada gmtcreate; data privada gmtmodified; public long getId () {return id;} public void setId (long id) {this.id = iD;} public string getUserName () {return username;} namerername (} string string) {thryname.Urname; getGmtCreate () {return gmtcreate;} public void setGmtCreate (data gmtcreate) {this.gmtcreate = gmtcreate;} public date getGmtModiFied () {return gmtmodiFed;} public void setgmtmodiFied (gmtmodiFed) {retorna) {gmtmodiFed;2. Definição da interface:
interface pública userdao {@insert ("inserir em t_user (gmt_create, gmt_modified, user_name) valores (agora (), agora (), #{userName})") public int insert (@param ("userName") string); @Select ("Selecione * de t_user onde id = #{id}") public userdo selectbyUserId (@param ("id") longo id); @update ("atualize t_user set gmt_modiFed = agora (), user_name = #{userName} onde id = #{}") @Param ("id") longo id); @Delete ("Exclua do t_user onde id = #{id}") public int udpatebyId (@param ("id") longo id); }3. Mybatis XML Config:
<!-mybatis anotação-> <bean id = "sqlSessionFactory"> <propriedade name = "DataSource" ref = "mysqlbase" /> <!-Aqui você só precisa configurar sua própria fonte de dados-> </ Bean> <bean id = userdao "> <propriedades =" ", paraverface" Comnterface "=" <!-interface mybatis-> <propriedade name = "sqlSessionFactory" ref = "sqlSessionFactory" /> <!-SQLSession Factory-> </shean>
Dessa forma, concluímos a demonstração de Mybatis usando anotações. Não parece muito simples?
Se você estiver familiarizado com o Mybatis XML, na maioria dos casos, precisamos mapear os nomes de campo das tabelas de banco de dados para a classe. A anotação Mybatis também fornece funções de mapeamento e a sintaxe é semelhante.
@Select ("Selecione * de tsp_template onde id = #{id}")@Results (value = {@Result (Property = "UserName", column = "user_name", javatype = string.class, jdbctype = jdbctype.varchar)});Obviamente, o exposto acima é que o SQL não pode mais ser simples. Pense nisso, se tivermos esse requisito, atualizamos as informações do usuário e esperamos atualizar o valor do atributo especificado. Em outras palavras, geramos SQL dinamicamente como XML. Então, não podemos simplesmente usar e aproximadamente a anotação @Update. Felizmente, o poderoso Mybatis também fornece uma montagem SQL dinâmica.
Sql dinâmico
O relacionamento correspondente é o seguinte
@Insert: @insertProvider
@Select: @selectProvider
@UpDate: @UpDateProvider
@Delete: @DeleteProvider
Os quatro identificadores de anotação do provedor usam SQL dinâmico e usam formato de sintaxe:
@UpdateProvider (type = userprovider.class, métod = "updateql")
Como construir SQL dinâmico
public class UserProvider {/*** udpate* @param userdo userdo* @return*/public string updateql (final userdo userdo) {return sql () {{{update ("t_userser"); set ("gmt_modified = (agora); if (userdo.getUrDoM); #{nome de usuário} ");} onde (" id = #{id}} ");}}. tostring ();}}Os pontos de conhecimento mencionados neste artigo são relativamente básicos. Se você precisar ter um entendimento profundo, consulte o documento oficial do site ou leia o código-fonte.
Resumir:
1. Como escolher XML e anotações? Varia de pessoa para pessoa. Todo mundo tem seus próprios hábitos de codificação. XML e anotações têm suas próprias vantagens e desvantagens. As desvantagens do XML: quando os atributos do modelo são alterados, ele precisa ser alterado de DA para DAO para XML. Será uma dor pensar sobre isso ~ XML também tem vantagens. A reutilização do fragmento SQL é conveniente e a sintaxe é acessível. Ao contrário das anotações, você deve construir uma instrução dinâmica e criar uma classe. Além disso, quando um segmento de SQL é referenciado em vários lugares, o código parece redundante. Neste momento, o XML deve ser usado para extraí -lo e usá -lo juntos. Eu reclamei da anotação Mybatis, essa anotação não seria inútil? Não, o mybatis é adequado para cenários em que os atributos do modelo são frequentemente alterados, porque podem ser combinados com reflexão e SQL construído dinamicamente (puramente absurdo, idéias pessoais, devem ser realizadas e será feito outro dia). Pode -se dizer que as vantagens da anotação Mybatis compensam bem as deficiências do XML. Os dois se complementam ~
O exposto acima é um início rápido para as anotações de desenvolvimento Mybatis introduzidas pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!