Quais são as características de Mybatis-plus
1. Geração de código 2. Construtor condicional
Para mim, o principal objetivo é usar seu poderoso construtor condicional.
Etapas rápidas a serem usadas:
1. Adicione dependências de arquivo POM
<Depencency> <GrupidId> org.apache.velocity </frupidId> <stifactId> Velocity </ArtifactId> <versão> 1.7 </version> </dependency> <pendence> <puperid> com.baomidou </Groupid> <Tarfactid> mybatis-pl/</stifactid> <versão> 2,7..
Nota: Mybatis-plus manterá automaticamente as dependências de Mybatis e Mybatis-Spring; portanto, não há necessidade de apresentar os dois últimos para evitar conflitos de versão.
2. Modifique o arquivo de configuração
Basta substituir o SQLSessionFactory da Mybatis pelo Mybatis-plus. Mybatis-plus apenas faz algumas extensões funcionais:
<bean id = "sqlSessionFactory"> <propriedade name = "DataSource" ref = "DataSource"/> <!-Scan automática de maping.xml arquivo-> <nome da propriedade = "mapperlocations" value = "ClassPath: mybatis/*/*. xml"/> <propriedades "" Configloclocation " Value = "Classpath: mybatis/mybatis-config.xml"/> <propriedade name = "typeAliasespackage" value = "com.baomidou.springmvc.model. value = "mysql"/> </shean> </ray> </propriedade> <!-Injeção de Configuração Global-> <Nome da Propriedade = "GlobalConfig" Ref = "GlobalConfig"/> </Bean>
Na configuração acima, além da configuração regular do MYBATIS, há uma configuração adicional e configuração global do plug-in de paginação. O Mybatis-plus fornece um uso muito conveniente do plug-in de paginação, e também há uma configuração global da seguinte maneira:
<bean id = "globalConfig"> <!-auto-> 0` ("ID do banco de dados Auto-increment") input-> `` 1` (ID de entrada do usuário ") id_worker->` 2` ("global íd ID") uuid-> `3` (" Global ID ")-> <propriedades-" IdType ") Oracle-> `oracle` db2->` db2` h2- >` `h2` hsql- >`` hsql` sqlite-> `sqlite` pós-gre->` postgresql` sqlServer2005-> `sqlServer200Al't-sql` sqlserver2005->` sqlServer200Al'tsversversversver2005) Este item-> <!-<propriedade name = "dbtype" value = "oracle" />-> <!-Global Table define true para o nome sublinhado-> <propriedade name = "dbcolumnunderline" value = "true" /> < /bean>Neste ponto, mesmo que o trabalho de configuração seja concluído, vamos usar um exemplo simples para experimentar seu uso.
1. Crie uma nova tabela de usuários:
@Tablename ("user") public class Usuário implementa serializável { / ** ID do usuário* / private Long ID; / ** Nome de usuário*/ nome da string privada; / ** idade do usuário*/ idade inteira privada; @Tablefield (exist = false) private string state;}Há duas anotações a serem observadas aqui. O primeiro é @tableName ("Usuário"), que especifica a associação com a tabela de banco de dados. A anotação aqui significa que deve haver uma tabela chamada usuário no seu banco de dados correspondente a ele, e o nome da coluna da tabela de dados deve ser os atributos da classe de usuário. Para atributos que estão na classe de usuário, mas não possuem na tabela de usuários, é necessária uma segunda anotação @tablefield (exist = false) para excluir atributos na classe de usuário.
2. Crie uma nova interface da camada DAO UsermApper:
/*** Interface da camada de controle do banco de dados da tabela de usuários*/interface pública UsermApper estende Basemapper <susarem> {@select ("SelectUSerList") List <usery> selectUserList (página de paginação, State de string);}A interface DAO precisa implementar o Basemapper, para que muitos métodos encapsulados possam ser usados. Além disso, você também pode escrever métodos. @Select Anotation refere -se ao arquivo UserMApper referenciado da terceira etapa.
3. Crie um novo arquivo de configuração do UserMApper:
<? xml versão = "1.0" coding = "utf-8"?> <! namespace = "com.baomidou.springmvc.mapper.system.userMapper"> <!-Consulta geral coluna-> <sql id = "base_column_list"> id, nome, idade </sql> <select id = "selectUSerList" resulttype = "user"> * *
4. Crie um novo serviço de usuários da classe de camada de serviço:
/** * * * TABELA DE DADOS DE DADOS DE DADOS DE DADOS CLASSE DE IMPLEAÇÃO DA CAMADA DE SERVIÇO DE SERVIÇOPUBLIC UserService estende o ServiceImpl <UserMApper, User> {Public Page <Suser> SelectUserPage (página <Suser> Page, String State) {Page.SetRecords (BasEMapper.SelectUserlist (página, State)); página de retorno; }}UserService herda a classe ServiceImpl. Mybatis-plus injeta UsermApper em nós dessa maneira. Dessa forma, podemos usar muitos métodos fornecidos pela camada de serviço por padrão, e também podemos chamar os métodos que escrevemos na camada DAO para operar o banco de dados. A classe Page é um modelo que o Mybatis-plus fornece função de paginação, herda a paginação, para que não precisemos escrever outra classe de página, basta usá-la diretamente.
5. Crie uma nova camada de controlador UserController
@ControllerPublic Classe UserController estende Basecontroller {@AUTOWIRED PRIVADO IUSERSERVICE UserService; @ResponseBody @RequestMapping ("/Page") public Object SelectPage (modelo modelo) {página da página = new Page (1,10); página = userservice.SelectUserPage (página, "Normal"); página de retorno; }O acima completa uma função básica. Vamos dar uma olhada em seu construtor condicional.
Construtor condicional para mybatis-plus
Primeiro, vejamos a simples e praticidade de uma instância do construtor condicional.
public void test () {entitywrapper ew = new entitywrapper (); ew.setentity (new user ()); String name = "wang"; Idade inteira = 16; ew.where ("name = {0}", nome) .andnew ("idade> {0}", idade) .ordeby ("idade"); List <suser> list = userservice.SelectList (EW); Página página2 = UserService.SelectPage (página, EW); }Aqui, uma classe de invólucro condicional EntityWrapper é usada para montar instruções SQL. O princípio também é fácil de entender. No código acima, o resultado da primeira consulta da lista é consultar todos os registros no banco de dados com nome = wang e idade> 16 anos e classificá -los de acordo com a idade. A segunda consulta é adicionar outra função de paginação.
Basicamente, o uso do EntityWrapper pode simplesmente concluir algumas consultas condicionais, mas se o método de consulta for usado com muita frequência, é recomendável escrever -o no UserMApper.
Então, o método mapeador personalizado pode usar o entitywrapper? Claro, também é possível.
Um exemplo disso é fornecido na documentação.
1. Definição em Mappper:
Lista <suser> SelectMypage (Wrapper de RowBounds, @param ("Ew") Wrapper <T>);
2. Defina no arquivo de mapeador:
<select id = "SelectMypage" ResultType = "User"> Selecione * do usuário $ {EW.SQLSEGEM} </leclect>Para a emenda condicional do entitymapper, podemos basicamente implementar onde e, ou, grupo, o pedido e outra sintaxe comumente usados no SQL, e os métodos de construção específicos podem ser combinados com flexibilidade.
@Testpublic void testtsql11 () { / * * entidade com saída de método de uso de consulta para ver o resultado * / ew.setentity (novo usuário (1)); ew.where ("name = {0}", "'zhangsan'"). e ("id = 1") .ornew ("status = {0}", "0"). ou ("status = 1") .Not Like ("Nike", "NotValue") .AndNew ("novo = xx"). .andnew ("pwd = 11"). IsnotNull ("n1, n2"). isnull ("n3") .groupby ("x1"). groupby ("x2, x3"). System.out.println (ew.getSqlsegment ());}Documentos de referência
MyBaits-Plus Oficial Documentação
Resumir
O acima é o tutorial de introdução rápida para a ferramenta Mybatis Plus, apresentada a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo!