1. Interface getMapper ()
Análise: interface getMapper () idept.class define uma interface,
Montar um método que não é implementado. Em termos especiais, qualquer método que empreste o edifício deve ser consistente com o atributo ID na pequena configuração.
Através do proxy: gerar o nome da classe de implementação da interface, mantenha o nome $$ dept_abc, selectDeptByno () nos Mybatis subjacentes
É equivalente a um tipo forte
Por exemplo
Etapa 1: Defina uma interface em CN.Happy.dao
pacote cn.happy.dao; importar java.util.list; importar cn.happy.entity.dept; interface pública ideptdao {// veja tudo ------------ GetLetAldEpt deve ser o mesmo que o id na pequena lista de configuração pública <Dept> getallDep ();} Etapa 2: IDEPT.xml Configuração pequena configuração
Análise: o atributo ID em selecionado deve ser o mesmo que o nome do método da interface na interface; O nome do pacote de atributo namespace do mapeador é cn.happy.dao.ideptdao interface
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype MapperPublic "-// mybatis.org//dtd mapper 3.0 //" "httpp://mybatis.org/dtd/mybatis-3mappper.dtd"> namespace = "cn.happy.dao.ideptdao"> <select id = "getAllDept" resulttype = "cn.happy.entity.dept"> selecione * do departamento </select> </palpper>
Etapa 3: Classe de teste
Análise: Existem duas maneiras de ver todas as informações
1) session.selectList("cn.happy.dao.IDeptDao.getAllDept");---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) ideptdao mapper = session.getMapper (ideptdao.class); é equivalente à classe de implementação, Getmapper é um tipo forte
// 01View todas as informações getMapper () O nome do método da classe de interface deve ser o mesmo que o ID da pequena configuração @testpublic void testSelectall () {SqlSession Session = Factory.openssession (); // Use Type fraco ======== Classe de entidade. O nome do ID na pequena configuração ============ String/*List <Tept> List = session.SelectList ("cn.happy.dao.ideptdao.getAllDept"); para (Dept Dept: list) {System.out.println (DeptEpPergTName (); Classe de implementação na memória =============== Equivalente ao Tipo Strong // Mapper é um objeto de implementação objeto ideptdao mapper = session.getmapper (ideptdao.class); list <Tept> list = mapper.getAllDept (); para (Departamento Departamento: Lista) {System.out.println (Dept.getDeptName ());} Etapa 4: use uma grande configuração em todo o texto
<? xml versão = "1.0" Encoding = "utf-8"?> <! Alias Small Configuration to the Alias-> <TypeAliases> <typeAlias type = "cn.resultmap.eneTity.emp" Alias = "Emp"/> </typeAliases> <ambientes padrão = "Development"> <Environment ID = "Development"> <transactionManager "" JDBC => <DataSource "Typen Typey = <transactionManager" value = "oracle.jdbc.oracledriver" /> <propriedade name = "url" value = "jdbc: oracle: thin: @localhost: 1521: orcl" /> <names name = "userring" valority = "sa" /> <name = "senha" = "1" /> < /dataSource> e uma tabela de banco de dados-> <Mappers> <Mapper Resource = "CN/ResultMap/Enetity/Emp.xml"/> </Mappers> </figuration>
2. Tag ResultMap
Análise: O cenário usado é que, quando as propriedades da classe Entidade não correspondem ao banco de dados, as propriedades da classe de entidade e o banco de dados devem ser consistentes. (Eu usei a classe de entidade antes)
Por exemplo, pesquisam todos os funcionários e departamentos afiliados
Etapa 1: Crie uma interface
pacote cn.resultmap.dao; importar java.util.list; importar cn.resultmap.enetity.emp; interface pública iempdao {// recuperar todos os funcionários e departamentos afiliados Lista pública <emp> getallemps ();} Etapa 2: configure as propriedades na pequena configuração
Análise: Para uma parte com uma grande perspectiva de funcionários, use a associação para incorporar cada atributo de uma parte. (Se a associação for removida, é o Basic ResultMap)
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype MapperPublic "-// mybatis.org//dtd mapper 3.0 //" "httpp://mybatis.org/dtd/mybatis-3mappper.dtd"> namespace = "cn.resultmap.dao.iempdao"> <resultado Column = "Empcity"/> <!-Para cada parte com uma grande perspectiva do funcionário, use a associação-> <Association Property = "Dept" javatype = "cn.resultmap.eneTity.Dept"> <Result Property = "deptName" column = "DeptName"/> <Result ("" Deptno " id = "getallemps" resultmap = "empmap"> selecione e.*, d. Etapa 3: Classe de teste
// ResultMap: O nome do atributo da entidade e o nome do campo da tabela são garantidos como consistentes com o ResultMap // se você relatar a NuLlexception, consulte se a associação de mapeamento da pequena configuração está configurada. ResultMap está configurado @testpublic void testallemp () {sqlSession session = factory.opensession (); iempdao mapper = session.getmapper (iempdao.class); list <emp> allemps = mappper.getallemps (); for (empip: alemps) {System.out.println (emp.getempname ()+"/t departamento de afiliado"+emp.getDept (). getDeptName ());} session.close ();} Etapa 4: Introduzir pequenas configurações em grandes configurações
3. Extrair colunas SQL
Análise: Tag SQL simplifica o volume de código em uma pequena configuração
<!-Uso de tags SQL-> <sql id = "colunns"> d.deptno, d.deptName </sql> <!-uso de tags sql-> <select id = "getallemps" resultMap = "Empmap"> selecione e.
4. Alias também
Análise: Escreva em grandes configurações, para que os alias possam ser referenciados em pequenas configurações
<!-Altere o valor do atributo do tipo na configuração do alias de alias para o alias-> <TyceAliases> <typeAlias type = "cn.resultmap.enenetity.emp" Alias = "Emp"/> </typeAliases>
5. Operação dinâmica
Análise: Os principais elementos usados para implementar o SQL dinâmico são:
se escolher (quando, caso contrário) onde definido
Por exemplo, veja as pessoas na cidade de Pequim
Etapa 1: interface
pacote cn.resultmap.dao; importar java.util.list; importar cn.resultmap.enetity.emp; interface pública iempdao {// recuperar todos os funcionários e departamentos afiliados Lista pública <emp> getallemps ();}Etapa 2: Versão pequena = "1.0" Encoding = "UTF-8"?>
<! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // pt" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "CN.RESULTMAP.DAO.IMPDA" type = "cn.resultmap.eneTity.emp" id = "empmap"> <id de propriedade = "empid" column = "empid"/> <resultado de propriedade = "empname" column = "empname"/> <result Property = "Empcity" lampey = "empcity"/> <! javatype = "cn.resultmap.eneTity.Dept"> <Result Property = "deptName" column = "deptName"/> <Result Property = "deptno" column = "DeptNo"/> </ResultMap> <select Id = "getallemps" ResultMap = empMap "> select e. e.deptNo = d.DeptNo </leclect> <!-Query Dynamic Query-> <select id = "testallempBuselect" parameterType = "cn.resultmap.eneTity.emp" resultType = "cn.resultmap.eNetity.emp" resultType = "cn.RESSURTE> test = "empid! = null"> e empid =#{empid} </if> <if test = "empname! = null"> e empname =#{empname} </if> <se test = "Empcity! = null"> e empcity =#{empcity}} Etapa 3: teste
// dinâmico query @testpublic void testSelect () {sqlSession session = factory.opensession (); EMP EMP = new EMP (); // Emp.SetempName ("331"); emp.setempcity ("sh"); lista <EMP> LIST = List = session.SelectList ("cn.resultmap.dao.iempdao.testallempbuselect", emp); para (empina emp: list) {system.out.println (emps.getempname ());} session.close ();} Etapa 4: Introduzir pequenas configurações em grandes configurações
Por exemplo, informações de departamento modificar
Etapa 1: interface
Etapa 2: pequena configuração
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype MapperPublic "-// mybatis.org//dtd mapper 3.0 //" "httpp://mybatis.org/dtd/mybatis-3mappper.dtd"> namespace = "cn.resultmap.dao.ideptdao"> <resultado ResultMap = "DeptSultMap"> Selecione d.*, e. Dept <Set> <if test = "deptno! = null"> deptno =#{deptno}, </if> <se test = "deptName! Etapa 3: teste
/*** Modificação dinâmica**/@testpublic void testUpDate () {SqlSession Session = Factory.opensession (); Departamento Dept = new Dept (); Dept.SetDeptName ("Departamento Financeiro"); Dept.setDepto (1); int conting = session.Update ("cn.resultmap.dao.ideptdao.testupdate", dept); session.commit (); system.out.println (contagem); session.close ();}O acima exposto é uma explicação detalhada da interface mybatis 'getMapper (), tag resultMap, alias, tente extrair colunas SQL e operações dinâmicas. 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!