mybatis 的mapper文件解析规律,只会解析出一层你申明好的参数类型,如果就是map一层解析出来后就是字符串k-v,
表达式中直接用key,若果map中套map解析出来的就是内层param,后面用的时候用key在点入一层渠道具体常用类型数据
返回结果是 resultType="java.util.HashMap" 可以不用建立特意的实体,去承接
例如:
@Override
@Transactional(rollbackFor=Exception.class)
public void updateUser(Map<String, Object> param, String[] pz) throws Exception {
param.remove("CUSTOMER_ID1");
Map<String, Object> paramTableKey = new HashMap<String, Object>();
TbCusFirmAffix record = new TbCusFirmAffix();
record.setCustomerKey(BigDecimal.valueOf(Long.valueOf((String)param.get("CUSTOMER_KEY"))) );
tbCusFirmAffixMapper.delete(record);
Map<String,Object> fileMap;
Map<String,Object> dictMap;
if("Y".equals(param.get("COMP_TYPE"))){
//if(param.get("LANGUAGE")==null||param.get("LANGUAGE").toString().equals("")){
//param.put("LANGUAGE", "CN");
//}
param.put("CUSTOMER_NAME", param.get("CHINESE_NAME"));
fileMap = new HashMap();
List<Map> GN = new ArrayList<Map>();
Map<String,Object> paramCodeGN = new HashMap<String,Object>();
paramCodeGN.put("code", "TB_CUS_FIRM_AFFIX.AFFIX_KIND.QY.GN");
GN=tbCusFirmChgMapper.getCodeMap(paramCodeGN);
for(Map gn: GN){
String key="";
for(Object k: gn.keySet()){
key=(String) k;
break;
}
if((!"".equals(param.get("fjCode_N_"+gn.get(key)))&¶m.get("fjCode_N_"+gn.get(key))!=null)||(param.get("zjInfo_N_"+gn.get(key))!=null&&!"".equals(param.get("zjInfo_N_"+gn.get(key))))){
Map<String, Object> paramTableKey1 = new HashMap<String, Object>();
paramTableKey.put("P_KEYMGR_KEY", Integer.valueOf(41));
paramTableKey.put("P_GETNUM", Integer.valueOf(1));
String tk1= tbCusFirmChgMapper.getTableKey(paramTableKey);
Integer X_CURVAL1=0;
if(paramTableKey.get("X_CURVAL")!=null){
X_CURVAL1=(Integer) paramTableKey.get("X_CURVAL")+1;
}
fileMap.put("CUSAFFIX_KEY", X_CURVAL1);
fileMap.put("CUSTOMER_KEY", param.get("CUSTOMER_KEY"));
fileMap.put("AFFIX_KIND", gn.get(key));
if(gn.get(key)==null){
fileMap.put("FJNAME", "");
}else{
fileMap.put("FJNAME", gn.get(key));
}
if(param.get("fjCode_N_"+gn.get(key))==null){
fileMap.put("PAPERS_NUM", "");
}else{
fileMap.put("PAPERS_NUM", param.get("fjCode_N_"+gn.get(key)));
}
String filePath="";
if(gn.get(key)!=null){
filePath=(String) param.get("zjInfo_N_"+gn.get(key));
}
if(filePath==null){
filePath="";
}
fileMap.put("AFFIX_PATH", filePath);
if(getFileExt(filePath).contains("/")){
fileMap.put("AFFIX_TYPE", getFileExt(filePath).substring(0, getFileExt(filePath).indexOf("/")));
}else{
fileMap.put("AFFIX_TYPE", getFileExt(filePath));
}
fileMap.put("AFFIX_DATE", new Date());
Map<String,Object> filem = new HashMap<String,Object>();
filem.put("param", fileMap);
//tbCusFirmChgMapper.saveDataMapAFFIX2(filem);
tbCusFirmWebMapper.saveDataMapWeb(filem);
}
<insert id="saveDataMapWeb" parameterType="map" >
INSERT INTO TB_CUS_FIRM_AFFIX_CHG
<foreach collection="param.keys" item="k" open="(" close=")" separator=",">
${k}
</foreach>
VALUES
<foreach collection="param.keys" item="k" open="(" close=")" separator=",">
<if test="null != param[k]">
#{param[${k}]}
</if>
</foreach>
@RequestMapping("/account/tbCusFirmWeb/autio")
public String autio(@RequestParam(value = "customerKey", required = false) String customerKey,@RequestParam Map<String, Object> regUser,Model model) throws EsteelException {
List<TbBasBed> tbBasBedList2 = new ArrayList<TbBasBed>();
tbBasBedList2 = tbBasBedService.list();
if(!"".equals(customerKey)&&null!=customerKey){
TbConFirmFeeVo tbConFirmFee = new TbConFirmFeeVo();
tbConFirmFee.setWareKey(BigDecimal.valueOf(Long.valueOf(customerKey)));
Map<String,Object> param = new HashMap<String,Object>();
param.put("customerKey", customerKey);
if(tbConFeeService.getTbConFeeVoListVO(param)!=null&&tbConFeeService.getTbConFeeVoListVO(param).size()>0){
tbConFirmFee= tbCusFirmChgService.getTbConFirmFeeListVO(param).size()==0?null:tbCusFirmChgService.getTbConFirmFeeListVO(param).get(0);
}
model.addAttribute("vo", tbConFirmFee);
model.addAttribute("flag", "1");
}else{
model.addAttribute("flag", "0");
}
Map<String,Object> param = new HashMap<String,Object>();
List<TbBasFee> sp = new ArrayList<TbBasFee>();
sp= tbBasFeeService.getTbBasFeeListNoPage(param);
List<TbBasBedSrt> tbBasBedSrtList = new ArrayList<TbBasBedSrt>();
tbBasBedSrtList= tbBasBedSrtService.list();
model.addAttribute("fq", sp);
List<TbBasLkp> gj= tbBasLkpService.getTbBasLkpByBusinessType("GJ");
model.addAttribute("gj", gj);
List<TbBasAreaVo> tbBasAreas= tbCusFirmService.getShen();
model.addAttribute("shen", tbBasAreas);
List<Map> GN = new ArrayList<Map>();
List<Map> GW = new ArrayList<Map>();
Map<String, Object> GN1 = new HashMap<String,Object>();
Map<String, Object> GW1 = new HashMap<String,Object>();
GN1.put("lookup_type", "1");
GN1.put("lookup_name", "2,2y");
GW1.put("lookup_type", "1");
GW1.put("lookup_name", "2");
GN.add(GN1);
GW.add(GW1);
Map<String,Object> paramCodeGW = new HashMap<String,Object>();
paramCodeGW.put("code", "TB_CUS_FIRM_AFFIX.AFFIX_KIND.QY.GW");
Map<String,Object> paramCodeGN = new HashMap<String,Object>();
paramCodeGN.put("code", "TB_CUS_FIRM_AFFIX.AFFIX_KIND.QY.GN");
Map<String,Object> paramCodeZJ = new HashMap<String,Object>();
paramCodeZJ.put("code", "TB_CUS_FIRM_WEB.CARD_TYPE");
GN=tbCusFirmChgService.getCodeMap(paramCodeGN);
GW=tbCusFirmChgService.getCodeMap(paramCodeGW);
model.addAttribute("mapGN", GN);
model.addAttribute("mapGW", GW);
String customerID= tbCusFirmChgService.createCustomerID();
model.addAttribute("CUSTOMER_ID", customerID);
List<String> companyType= tbCusFirmChgService.getCompanyType();
model.addAttribute("companyType", companyType);
model.addAttribute("CUS_RANK_NUM", tbCusFirmChgService.getCusRankList());
model.addAttribute("CREDIT_RANK_NUM", tbCusFirmChgService.getCreditRank());
model.addAttribute("TRADE_RANK_NUM", tbCusFirmChgService.getTradeRank());
model.addAttribute("CARD_TYPE", tbCusFirmChgService.getCodeMap(paramCodeZJ));
model.addAttribute("customerKey", customerKey);
Map<String,Object> userInfo =null;
if(!"".equals(customerKey)&&customerKey!=null){
Map<String,Object> paramEdit = new HashMap<String,Object>();
paramEdit.put("CUSTOMER_KEY", Integer.valueOf(customerKey));
if(tbCusFirmWebService.getUserInfoWeb(customerKey)!=null&&tbCusFirmWebService.getUserInfoWeb(customerKey).size()>0){
userInfo =tbCusFirmWebService.getUserInfoWeb(customerKey).get(0);
}
if(userInfo!=null){
userInfo.put("zjInfo", tbCusFirmWebService.getZjInfoWeb(paramEdit));
}
if(userInfo!=null){
List list = tbCusFirmWebService.getJypzInfoList(customerKey);
userInfo.put("jypzInfoList", list);
if(list!=null&&list.size()>0){
Map jypzInfoMap1 = new HashMap();
for(int i=0;i<list.size();i++){
Map pzDate = (Map) list.get(i);
jypzInfoMap1.put(pzDate.get("WAREKIND_KEY")+"-"+pzDate.get("CURRENCY_TYPE"), pzDate.get("WAREKIND_KEY")+"-"+pzDate.get("CURRENCY_TYPE"));
}
userInfo.put("jypzInfoMap", jypzInfoMap1);
Map jypzInfoMap = null;
jypzInfoMap=(Map) userInfo.get("jypzInfoMap");
List<Map> codeLibraryjypzList= tbCusFirmChgService.getCodeLibraryListForjypz(jypzInfoMap);
model.addAttribute("codeLibraryjypzList", codeLibraryjypzList);
}
}
List<TbBasAreaVo> tbBasShis= tbCusFirmService.getShi(userInfo.get("PROVINCE_AREA_KEY")+"");
model.addAttribute("regUser", userInfo);
model.addAttribute("tbBasShis", tbBasShis);
model.addAttribute("operateuserList", tbCusFirmChgService.getOperateUserByCustomerKey(paramEdit));
}
return "/account/tbCusFirmWeb/autio";
}
<select id="getUserInfoWeb" parameterType="string" resultType="java.util.HashMap">
SELECT t.*,FC_GET_AREANAME(t.CITY_AREA_KEY) AREA_NAME FROM TB_CUS_FIRM_WEB t WHERE CUSTOMER_KEY=#{CUSTOMER_KEY}
</select>
相关推荐
根据MyBatis或iBatis的SQLMapper文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,然后根据这些SQL语句来生成对应的数据库表结构。这样的需求可能源于需要将已有的SQLMapper文件...
"Spring+mvc+mybatis Mapper xml自动加载"这个主题聚焦于如何在开发过程中优化配置,使得改动Mapper XML文件后,无需重启Tomcat服务器,就可以立即生效,从而提高开发效率。 Spring MVC是Spring框架的一部分,它...
根据项目模块来生成对应的Mapper,这里采用Maven构建项目。Mybatis Generator插件怎么使用请参考:https://my.oschina.net/boonya/blog/719502。更多代码生成器介绍请参考:...
3. **Mapper扫描**:在Mybatis的配置文件中,我们需要启用Mapper扫描,指定包含Mapper接口的包,这样Mybatis在启动时会自动发现并加载这些接口。 4. **SqlSession与MapperFactoryBean**:在应用中,通过SqlSession...
MyBatis Mapper映射文件
Mybatis的Mapper接口允许我们定义SQL查询,这些查询通过XML配置文件或注解与接口方法相对应。当执行Mapper方法时,Mybatis会自动处理SQL的执行和结果映射。这种方式提高了代码的可读性和可维护性。 Elasticsearch的...
在Spring Boot集成MyBatis的过程中,`mapper.xml`配置文件起着至关重要的作用。它用于定义SQL语句,实现数据库的CRUD操作。本示例将深入探讨如何配置`mapper.xml`,并提供新增、修改、删除、查询及分页查询的实践...
下面将详细阐述MyBatis Generator的使用方法、功能以及它如何帮助我们自动化生成实体类和Mapper文件。 1. **MyBatis Generator概述** MyBatis Generator基于Java,它可以解析数据库表结构,并根据这些信息生成相应...
4. **整合**:最后,将生成的文件导入到Maven项目中,并在项目中配置MyBatis的SqlSessionFactory,确保能正确加载Mapper XML文件。 关于`mysql-connector-java-5.1.38.jar`,这是一个MySQL的JDBC驱动包,它是连接...
本篇文章将深入探讨MyBatis的Mapper和XML文件生成,以及如何使用`mybatis-generator-core-1.3.2`工具进行自动化生成。 首先,让我们理解Mapper接口。Mapper接口是MyBatis中的一个关键概念,它允许开发者定义数据库...
总结来说,本示例展示了如何在不使用Mapper接口的情况下,通过MyBatis的XML配置文件和SqlSession执行SQL查询。这种方式虽然略显繁琐,但对于学习MyBatis的基本操作非常有帮助。在实际开发中,结合Mapper接口和注解...
标题 "根据mybatis/ibatis sqlmapper文件解析生成数据库表" 暗示了我们将会探讨一个关于MyBatis或iBatis框架的工具,它能够解析SQL映射文件并根据这些文件自动生成数据库表。这个过程对于快速构建数据库模型,尤其是...
Mapper.xml文件是Mybatis的核心组件,它包含了数据库操作的SQL语句和映射规则。 在处理字符串形式的多选参数时,我们通常会先在服务层将这些参数转换为Java集合,如List或Set。例如,如果用户选择的标签以逗号分隔...
解决MyBatis Mapper类注入失败的关键是检查Mapper类的注解、命名空间、Spring配置文件和依赖关系。如果这些设置不正确,Mapper类可能无法正确地注入到容器中。 结论 ---------- MyBatis Mapper类注入失败是一个...
操作简单方便,通过外置可运行jar包实现,无需集成到... 操作过程:1 ) 修改配置文件中的数据库地址,表名,和要输出的文件路径,2)通过命令一键生成xml文件,mybatis接口,实体映射类三个文件。 亲测执行结果正确。
在开发Java Web应用程序时,尤其是使用Mybatis作为持久层框架的时候,经常遇到的一个问题是:当我们在IntelliJ IDEA中修改了Mapper XML文件后,需要手动重启Tomcat服务器才能看到改动的效果,这无疑降低了开发效率。...
Mapper文件是Mybatis的核心,它定义了SQL查询、插入、更新和删除操作。每个Mapper文件对应一个Java接口,提供了一种将SQL语句与Java代码解耦的方式。Mapper XML文件中的主要元素包括: 1. **namespace**:与对应的...
Mapper映射配置文件是MyBatis的核心组成部分,用于定义SQL查询和结果映射。 首先,我们来看一下Mapper的XML配置文件。Mapper的XML文件通常放在项目的`resources`目录下,以`.xml`为扩展名,与对应的Java接口处于...
通过掌握以上知识点,我们可以高效地利用MyBatis的代码生成器,实现Mapper文件和Bean的自动化生成,从而提升开发效率,减少重复劳动。在实际开发中,合理运用这样的工具是提升团队协作效率的关键。
idea好用的插件:Free Mybatis自动对应mapper层的xml文件