`
y806839048
  • 浏览: 1126391 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

mybatis 的mapper文件解析规律

阅读更多

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)))&&param.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文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,然后根据这些SQL语句来生成对应的数据库表结构。这样的需求可能源于需要将已有的SQLMapper文件...

    Spring+mvc+mybatis Mapper xml自动加载

    "Spring+mvc+mybatis Mapper xml自动加载"这个主题聚焦于如何在开发过程中优化配置,使得改动Mapper XML文件后,无需重启Tomcat服务器,就可以立即生效,从而提高开发效率。 Spring MVC是Spring框架的一部分,它...

    Mybatis Mapper生成器示例

    根据项目模块来生成对应的Mapper,这里采用Maven构建项目。Mybatis Generator插件怎么使用请参考:https://my.oschina.net/boonya/blog/719502。更多代码生成器介绍请参考:...

    Mybatis Mapper的使用

    3. **Mapper扫描**:在Mybatis的配置文件中,我们需要启用Mapper扫描,指定包含Mapper接口的包,这样Mybatis在启动时会自动发现并加载这些接口。 4. **SqlSession与MapperFactoryBean**:在应用中,通过SqlSession...

    Mybatis的Mapper方式整合elasticsearch的DSL调用,基于接口和代理生成bean注入的方式进行调用

    Mybatis的Mapper接口允许我们定义SQL查询,这些查询通过XML配置文件或注解与接口方法相对应。当执行Mapper方法时,Mybatis会自动处理SQL的执行和结果映射。这种方式提高了代码的可读性和可维护性。 Elasticsearch的...

    MyBatis Mapper映射文件

    MyBatis Mapper映射文件

    springboot mybatis mapper.xml 配置

    在Spring Boot集成MyBatis的过程中,`mapper.xml`配置文件起着至关重要的作用。它用于定义SQL语句,实现数据库的CRUD操作。本示例将深入探讨如何配置`mapper.xml`,并提供新增、修改、删除、查询及分页查询的实践...

    mybatis自动生成mapper文件

    下面将详细阐述MyBatis Generator的使用方法、功能以及它如何帮助我们自动化生成实体类和Mapper文件。 1. **MyBatis Generator概述** MyBatis Generator基于Java,它可以解析数据库表结构,并根据这些信息生成相应...

    mybatis mapper自动生成

    4. **整合**:最后,将生成的文件导入到Maven项目中,并在项目中配置MyBatis的SqlSessionFactory,确保能正确加载Mapper XML文件。 关于`mysql-connector-java-5.1.38.jar`,这是一个MySQL的JDBC驱动包,它是连接...

    mybatis mapper 和xml文件生成

    本篇文章将深入探讨MyBatis的Mapper和XML文件生成,以及如何使用`mybatis-generator-core-1.3.2`工具进行自动化生成。 首先,让我们理解Mapper接口。Mapper接口是MyBatis中的一个关键概念,它允许开发者定义数据库...

    IntelliJ IDEA修改了mybatis mapper xml后不用重启tomcat,自动热发布 热更新 热部署.zip

    在开发Java Web应用程序时,尤其是使用Mybatis作为持久层框架的时候,经常遇到的一个问题是:当我们在IntelliJ IDEA中修改了Mapper XML文件后,需要手动重启Tomcat服务器才能看到改动的效果,这无疑降低了开发效率。...

    MyBatis的helloworld(不使用Mapper接口实现MyBatis查询数据库).zip

    总结来说,本示例展示了如何在不使用Mapper接口的情况下,通过MyBatis的XML配置文件和SqlSession执行SQL查询。这种方式虽然略显繁琐,但对于学习MyBatis的基本操作非常有帮助。在实际开发中,结合Mapper接口和注解...

    根据mybatis/ibatis sqlmapper文件解析生成数据库表

    标题 "根据mybatis/ibatis sqlmapper文件解析生成数据库表" 暗示了我们将会探讨一个关于MyBatis或iBatis框架的工具,它能够解析SQL映射文件并根据这些文件自动生成数据库表。这个过程对于快速构建数据库模型,尤其是...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    Mapper.xml文件是Mybatis的核心组件,它包含了数据库操作的SQL语句和映射规则。 在处理字符串形式的多选参数时,我们通常会先在服务层将这些参数转换为Java集合,如List或Set。例如,如果用户选择的标签以逗号分隔...

    关于mybatis mapper类注入失败的解决方案

    解决MyBatis Mapper类注入失败的关键是检查Mapper类的注解、命名空间、Spring配置文件和依赖关系。如果这些设置不正确,Mapper类可能无法正确地注入到容器中。 结论 ---------- MyBatis Mapper类注入失败是一个...

    mybatis mapper文件自动生成工具

    操作简单方便,通过外置可运行jar包实现,无需集成到... 操作过程:1 ) 修改配置文件中的数据库地址,表名,和要输出的文件路径,2)通过命令一键生成xml文件,mybatis接口,实体映射类三个文件。 亲测执行结果正确。

    Mybatis的mapper+config的DTD文件

    Mapper文件是Mybatis的核心,它定义了SQL查询、插入、更新和删除操作。每个Mapper文件对应一个Java接口,提供了一种将SQL语句与Java代码解耦的方式。Mapper XML文件中的主要元素包括: 1. **namespace**:与对应的...

    Java的MyBatis框架中Mapper映射配置的使用及原理解析

    Mapper映射配置文件是MyBatis的核心组成部分,用于定义SQL查询和结果映射。 首先,我们来看一下Mapper的XML配置文件。Mapper的XML文件通常放在项目的`resources`目录下,以`.xml`为扩展名,与对应的Java接口处于...

    自动生成mybatis的mapper文件和bean

    通过掌握以上知识点,我们可以高效地利用MyBatis的代码生成器,实现Mapper文件和Bean的自动化生成,从而提升开发效率,减少重复劳动。在实际开发中,合理运用这样的工具是提升团队协作效率的关键。

    mybatis中mapper文件resultMap中collection和association的使用

    mybatis中mapper文件resultMap中collection和association的使用,参考地址:https://blog.csdn.net/zhizhuodewo6/article/details/82863452

Global site tag (gtag.js) - Google Analytics