Na tabela de banco de dados Oracle emp exemplo usuário Scott, em que o parâmetro é um mapper.xml List <Map <String, Integer >> quando o texto de notar que vários Oracle e MySQL
MySQL:
< Atualização id = "updateEmpByMapList" parameterType = "list" > < foreach artigo = "paramMap" coleção = "paramMapList" abertas = "" perto = "" separador = "" > atualização emp set sal = # {paramMap.SAL, jdbcType = INTEGER} onde empno = # {paramMap.EMPNO, jdbcType = INTEGER}; </ Foreach > </ update >
E a necessidade de aumentar os allowMultiQueries parâmetro = true depois de dirigir jdbc
Oráculo:
< Atualização id = "updateEmpByMapList" parameterType = "list" > começar < foreach de item = "paramMap" cobrança = "paramMapList" abertas = "" perto = "" separador = "" > atualização emp set sal = # {paramMap.SAL, jdbcType = INTEGER} onde empno = # {paramMap.EMPNO, jdbcType = INTEGER}; </ Foreach > commit; fim; </ Update >
mapeador de interface
empacotar com.alphajuns.dao; importação org.apache.ibatis.annotations.Param; importação java.util.List; importação java.util.Map; pública de interface EmpMapper { Lista <Map <String, >> findEmpByMap (@param ( "paramMap") Map <String,>? paramMap); Lista <Map <String, >> findEmpByList (@param ( "paramList") List <Integer>? ParamList); vazio updateEmpByMapList (@param ( "paramMapList") List <Map <String, Integer >> paramMapList); Lista <Map <String,? >> findEmpByListMap (@param ( "paramListMap") Map <String, List <Integer >> paramlistmap); }
mapper.xml
<? xml version = "1.0" encoding = "utf-8" ?> <! DOCTYPE mapeador PUBLIC "- // mybatis.org//DTD Mapper 3.0 // EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > < mapeador namespace = "com.alphajuns.dao. EmpMapper" > < select id = "findEmpByMap" parameterType = "mapa" resultType = "mapa" > SELECT * FROM emp onde trabalho = # {paramMap.JOB, jdbcType = VARCHAR} </ selecionar > < selecionar id = "findEmpByList" parameterType =" SELECT * FROM emp onde empno em < foreach artigo = "item" index = "index" coleção = "paramList" abertas = "(" separador = "", perto = ")" > # {artigo} </ foreach > </ escolha > < atualização id = "updateEmpByMapList" parameterType = "list" > começar < foreach artigo = "paramMap" coleção = "paramMapList"abertas = "" perto = "" separador= "" > Atualização emp set sal = # {paramMap.SAL, jdbcType = INTEGER} onde empno = # {paramMap.EMPNO, jdbcType = INTEGER}; </ Foreach > commit; fim; </ Update > < select id = "findEmpByListMap" parameterType = "mapa" resultType = "mapa" > SELECT * FROM emp onde empno em < foreach artigo = "empno" index = "index" de cobrança = "paramListMap.empnoList" abertas = "(" perto =" # {empno} </ foreach > </ selecionar > </ mapeador >
interfaces de serviço
empacotar com.alphajuns.service; importação com.alphajuns.pojo.Employee; importação java.util.List; importação java.util.Map; pública de interface EmployeeService { Lista <Map <String, >> findEmpByMap (Map <String,>? paramMap); Lista <Map <String, >> findEmpByList (List <Integer>? ParamList); vazio updateEmpByMapList (List <Map <String, Integer >> paramMapList); Lista <Map <String, >> findEmpByListMap (Map <String, List <Integer >>? ParamListMap); }
classe de implementação do serviço
empacotar com.alphajuns.service.impl; importação com.alphajuns.dao.EmpMapper; importação com.alphajuns.dao.IEmpDao; importação com.alphajuns.pojo.Employee; importação com.alphajuns.service.EmployeeService; importação org.springframework.beans.factory.annotation.Autowired; importação org.springframework.stereotype.Service; importação java.util.List; importação java.util.Map; / ** * @ClassName EmployeeServiceImpl * @description TODO * @author AlphaJunS * @Date 2020/03/25 19:51 * @Version 1,0 * / @Service pública classeEmployeeServiceImpl implementos EmployeeService { @Autowired privada EmpMapper empMapper; @Override pública List <Map <String, >> findEmpByMap (Map <String,>? ParamMap) { Lista <Map <String, >> empMapList =? EmpMapper.findEmpByMap (paramMap); voltar empMapList; } @Override pública List <Map <String, >> findEmpByList (List <Integer>? ParamList) { Lista <Map <String, >> empMapList =? EmpMapper.findEmpByList (paramList); voltar empMapList; vazio updateEmpByMapList (List <Map <String, Integer >> paramMapList) { empMapper.updateEmpByMapList (paramMapList); } @Override pública List <Map <String, >> findEmpByListMap (Map <String, List <Integer >>? ParamListMap) { Lista <Map <String, >> empMapList =? EmpMapper.findEmpByListMap (paramListMap); voltar empMapList; } }
classe de teste JUnit
importação org.junit.Before; importação org.junit.Test; importação org.junit.runner.RunWith; importação org.springframework.test.context.ContextConfiguration; importação org.springframework.test.context.junit4.SpringJUnit4ClassRunner; / ** * @ClassName JunitSuperTest * @description TODO * @author AlphaJunS * @Date 2020/03/25 20:39 * @Version 1,0 * / @RunWith (SpringJUnit4ClassRunner. Class ) @ContextConfiguration (locais = { "classpath *: applicationContext .xml" }) público classe JunitSuperTest { @Before pública anular o setup () { System.out.println ( "====== ======== entrar método JUnit" ); } }
importação com.alphajuns.service.EmployeeService; importação org.junit.Test; importação org.springframework.beans.factory.annotation.Autowired; importação java.util.ArrayList; importação java.util.HashMap; importação java.util.List; importação java.util.Map; / ** * @ClassName MapperTest * @description mapeador接口测试 * @author AlphaJunS * @Date 2020/03/30 20:47 * @Version 1,0 * / público classe MapperTest estende JunitSuperTest { @Autowired privada EmployeeService employeeService; @Teste pública vazio testFindEmpByMap () { Map <String, String> pramaMap = new HashMap <> (); pramaMap.put ( "trabalho", "CLERK" ); Lista <Map <String, >> empMapList =? EmployeeService.findEmpByMap (pramaMap); System.out.println ( "empMapList:" + empMapList); } @Test pública vazio testFindEmpByList () { Lista <Integer> empnoList = new ArrayList <> (); empnoList.add ( 7788 ); empnoList. Lista <Map <String, >> empMapList =? EmployeeService.findEmpByList (empnoList); System.out.println ( "empMapList:" + empMapList); } @Test pública vazio testUpdateEmpByMapList () { Map <String, Integer> pramaMap = new HashMap <> (); pramaMap.put ( "EMPNO", 7902 ); pramaMap.put ( "SAL", 4000 ); Mapa <String, Integer> Roteiro = new HashMap <> (); map.put ( "EMPNO", 7934 ); mapa.); Lista <Map <String, Integer >> paramMapList = new ArrayList <> (); paramMapList.add (pramaMap); paramMapList.add (mapa); employeeService.updateEmpByMapList (paramMapList); } @Test pública vazio testFindEmpByListMap () { Map <String, List <Integer >> pramaListMap = new HashMap <> (); Lista <Integer> empnoList = new ArrayList <> (); empnoList.add ( 7369 ); empnoList.add ( 7499 ); pramaListMap."empnoList" , empnoList); Lista <Map <String, >> empMapList =? EmployeeService.findEmpByListMap (pramaListMap); System.out.println ( "empMapList:" + empMapList); } }