Atitit 得到mybatis 实际 sql

1.1. 使用mybatis工具提供的,只能出现问号一大堆不行 1

1.2. 配置log 打印sql依然不行,里面有问号。。 4

1.3. 配置pgsdql sql日志只能抓取到navicate的不能mybatis的。。 4

1.4. 使用序列化保存的map调用mybatis,然后解析参数,替换ok 4

1.1. 使用mybatis工具提供的,只能出现问号一大堆不行

String sql = this.getSqlSession().getConfiguration().getMappedStatement("CliSchemeDefine.adviceSousuo_kucui").getBoundSql(map).getSql();

logger.info(sql);

public List adviceSousuo_kucui(HashMap map) throws Exception

{

//SqlSessionFactory.getConfiguration()

String sql = this.getSqlSession().getConfiguration().getMappedStatement("CliSchemeDefine.adviceSousuo_kucui").getBoundSql(map).getSql();

logger.info(sql);

return this.queryFo

14:10:25.821 [main] DEBUG java.sql.PreparedStatement - ==>  Executing: with kbmbbj as ( select a.BBY01,a.BCK01A,a.BCK01B from BBJ1 a where ? = '0' and a.BCK01A = ? and exists(select *from baz1 b where b.BCK01 = a.BCK01B and ? = (b.ACF01 & ?) ) ) SELECT distinct e.BDA01, e.BDA02, f.AAS02, a.BBX01, a.BDO01, d.BBY04 as BBX04, a.BBX05 , d.BBY05||case when bag16='' then '('||bag16||')' else '' end BBY05 , a.BDG02 , (COALESCE(b.BAP02,'')||'、'||COALESCE(c.BAG11,'')||'、'|| case when COALESCE(f2.BHJ01,0)=0 then '' else f2.BHJ02 end) as NBBX13 , d.BBY06, d.BBE02, d.BBY01, c.BAG27 , CASE WHEN ?=1 THEN c.BDG02A ELSE c.BDG02B END AS NUnit , case when ?='2' then GetDrugPrice(h1.BCK01 , d.BBY01 , ? , ?) else CASE WHEN ?=1 THEN d.BBY25*c.BAG05 ELSE d.BBY25*c.BAG07 END end AS Price , CASE WHEN ? = 1 THEN COALESCE(h1.LSQty,0)/c.BAG05 ELSE COALESCE(h1.LSQty,0)/c.BAG07 END AS amount ,h2.BCK03, f1.BCG02,d.BBY29 ,f.AAS07,COALESCE(h1.BCK01,0) BCK01,d.BBY44,c.bag03,c.bag05 FROM BBX1 a JOIN BBT1 b ON a.BBX01 = b.BBX01 JOIN BAG1 c ON b.BBX01 = c.BBX01 JOIN BBY1 d ON c.BBY01 = d.BBY01 JOIN BDA1 e ON a.BDA01 = e.BDA01 JOIN kbmbbj h ON d.BBY01 = h.BBY01 left JOIN V_DPK6 h1 ON h.BBY01 = h1.BBY01 AND h.BCK01B = h1.BCK01 and ? = (h1.ACF01 & ?) left join BCK1 h2 on h2.BCK01 = h1.BCK01 LEFT JOIN AAS1 f ON f.AAS01 = d.AAS01 left join BCG1 f1 on f1.BCG01 = d.BCG01 left join BHJ1 f2 on f2.BHJ01 = b.BBT08 WHERE ? ='0' and ((? = '1') or (? <> '1' and ((? <>1 and COALESCE(h1.LSQty,0)>0) or ?=1))) and ? = (d.ACF01 & ?) And a.BDA01<'4' And d.BBY31 > now() AND e.BEH01=? and h2.corporationid = ? and (d.BBY04 LIKE ? OR d.BBY44 LIKE ? OR (EXISTS(SELECT g.* FROM BDK1 g WHERE g.BBX01 = a.BBX01 AND (g.BDK03 LIKE ? OR g.ABBRP LIKE ? OR g.ABBRW LIKE ?)))) and (d.bdn01!='3' or (d.bdn01='3' and h1.bck01=?)) UNION ALL SELECT e.BDA01, e.BDA02, f.AAS02, a.BBX01, a.BDO01, d.BBY04 as BBX04, a.BBX05 , d.BBY05||case when bag16>'' then '('||bag16||')' else '' end BBY05, a.BDG02 , (COALESCE(b.BAP02,'')||'、'||COALESCE(c.BAG11,'')||'、'|| case when COALESCE(f2.BHJ01,0)=0 then '' else f2.BHJ02 end) as NBBX13 , d.BBY06, d.BBE02, d.BBY01, c.BAG27 , CASE WHEN ?=1 THEN c.BDG02A ELSE c.BDG02B END AS NUnit , case when ?='2' then GetDrugPrice(h1.BCK01 , d.BBY01 , ? , ?) else CASE WHEN ?=1 THEN d.BBY25*c.BAG05 ELSE d.BBY25*c.BAG07 END end AS Price , CASE WHEN ? = 1 THEN COALESCE(h1.LSQty,0)/c.BAG05 ELSE COALESCE(h1.LSQty,0)/c.BAG07 END AS amount ,case when COALESCE(h1.BCK01,0)=0 then '' else h2.BCK03 end BCK03, f1.BCG02,d.BBY29 ,f.AAS07,COALESCE(h1.BCK01,0) BCK01,d.BBY44 ,c.bag03,c.bag05 FROM BBX1 a JOIN BBT1 b ON a.BBX01 = b.BBX01 JOIN BAG1 c ON b.BBX01 = c.BBX01 JOIN BBY1 d ON c.BBY01 = d.BBY01 and d.ACF01 in (1,3) AND a.BDA01<'4' And d.BBY31 > now() and (d.BBY04 LIKE ? OR d.BBY44 LIKE ? OR (EXISTS(SELECT g.* FROM BDK1 g WHERE g.BBX01 = a.BBX01 AND (g.BDK03 LIKE ? OR g.ABBRP LIKE ? OR g.ABBRW LIKE ?)))) JOIN BDA1 e ON a.BDA01 = e.BDA01 AND e.BEH01=? left JOIN V_DPK6 h1 ON h1.BBY01 = d.BBY01 and (? <> '3' or (? = '3' and h1.BCK01=0)) and ((? = '1') or (? <> '1' and ((? <>1 and COALESCE(h1.LSQty,0)>0) or ?=1))) and (d.bdn01!='3' or (d.bdn01='3' and h1.bck01=?)) left join BCK1 h2 on h2.BCK01 = h1.BCK01 and h2.corporationid = ? LEFT JOIN AAS1 f ON f.AAS01 = d.AAS01 left join BCG1 f1 on f1.BCG01 = d.BCG01 left join BHJ1 f2 on f2.BHJ01 = b.BBT08 WHERE ? <> '0' union all SELECT distinct e.BDA01, e.BDA02, f.AAS02, a.BBX01, a.BDO01, d.BBY04 as BBX04, d.BBY05 BBX05, d.BBY05 , a.BDG02, '' NBBX13, d.BBY06, d.BBE02, d.BBY01, 0 BAG27, d.BBY08 NUnit ,case when ?='2' then GetBBY1Price(d.BBY01,?) else d.BBY25 end price , g.lsqty AS amount,'' BCK03, h.BCG02,d.BBY29,f.AAS07,0 ,d.BBY44,1,1 FROM BBX1 a JOIN BCT1 c ON c.BBX01 = a.BBX01 and c.BCT33 = 1 JOIN BBY1 d ON d.BBY01 = c.BBY01 and d.ACF01 in (1,3) AND d.BBY31 > now() and (c.bct40=1 or c.bct40 is null) and (d.BBY04 LIKE ? OR d.BBY44 LIKE ? OR (EXISTS(SELECT g.* FROM BCL1 g WHERE g.BBY01 = d.BBY01 AND (g.BCL03 LIKE ? OR g.ABBRP LIKE ? OR g.ABBRW LIKE ?)))) JOIN BDA1 e ON e.BDA01 = a.BDA01 and e.BEH01=? AND e.BDA01 in ('4','M') LEFT JOIN AAS1 f ON f.AAS01 = d.AAS01 left join BCG1 h on h.BCG01 = d.BCG01 join v_mdk6 g on d.bby01 = g.bby01 and g.lsqty>0 and g.acf01 in (1,3) join blo1 k on k.bby01 = g.bby01 and k.bck01a= ? and k.bck01b = g.bck01 left join bck1 m on m.bck01 = k.bck01b and m.corporationid = ? union all SELECT distinct e.BDA01, e.BDA02, f.AAS02, a.BBX01, a.BDO01, d.BBY04 as BBX04, d.BBY05 BBX05, d.BBY05 , a.BDG02, '' NBBX13, d.BBY06, d.BBE02, d.BBY01, 0 BAG27, d.BBY08 NUnit ,case when ?='2' then GetBBY1Price(d.BBY01,?) else d.BBY25 end price , 1 AS amount,'' BCK03, h.BCG02,d.BBY29,f.AAS07,0 bck01,d.BBY44,1,1 FROM BBX1 a JOIN BCT1 c ON c.BBX01 = a.BBX01 and c.BCT33 = 1 and (c.bct40=0) JOIN BBY1 d ON d.BBY01 = c.BBY01 and d.ACF01 in (1,3) AND d.BBY31 > now() and (d.BBY04 LIKE ? OR d.BBY44 LIKE ? OR (EXISTS(SELECT g.* FROM BCL1 g WHERE g.BBY01 = d.BBY01 AND (g.BCL03 LIKE ? OR g.ABBRP LIKE ? OR g.ABBRW LIKE ?)))) JOIN BDA1 e ON e.BDA01 = a.BDA01 AND e.BEH01=? AND e.BDA01 in ('4','M') LEFT JOIN AAS1 f ON f.AAS01 = d.AAS01 left join BCG1 h on h.BCG01 = d.BCG01 join blo1 k on k.bby01 = d.bby01 left join bck1 m on m.bck01 = k.bck01b and K.bck01a = ?::int and m.corporationid = ? UNION ALL SELECT e.BDA01,e.BDA02,f.AAS02 ,a.BBX01,a.BDO01,a.BBX04,a.BBX05,a.BBX05,a.BDG02 ,CASE WHEN a.BDA01 IN ('8','9') THEN a.BBX06 WHEN a.BDA01 = 'T' THEN a1.AAF02 WHEN a.BDA01 = 'E' THEN a2.BBC02 WHEN a.BDA01 = 'L' THEN a3.AAV02 WHEN a.BDA01 = 'S' THEN a4.ACH02 WHEN a.BDA01 = 'A' THEN a5.ACI02 WHEN a.BDA01 = 'N' THEN a6.AAG02 WHEN a.BDA01 = 'Z' THEN a7.AAP02 ELSE NULL END NBBX13 ,a.BBX06, NULL AS BBE02,a.BBX01,a.BBX12,a.BDG02 AS NUnit ,case when ?='2' then GetBBX1Price(a.BBX01,?) else vb.Price end price,NULL ,'','' ,a.BBX29 ,f.AAS07,0,A.BBX36,1,1 FROM BBX1 a JOIN BDA1 e ON a.BDA01 = e.BDA01 AND e.BEH01=? LEFT JOIN V_BDU vb ON a.BBX01 = vb.BBX01 LEFT JOIN AAS1 f ON f.AAS01 = a.AAS01 LEFT JOIN AAF1 a1 ON a.BDA01='T' AND a.BBX13=a1.AAF01 LEFT JOIN BBC1 a2 ON a.BDA01='E' AND a.BBX13=a2.BBC01 LEFT JOIN AAV1 a3 ON a.BDA01='L' AND a.BBX13=a3.AAV01 LEFT JOIN ACH1 a4 ON a.BDA01='S' AND a.bbx13=a4.ACH01 LEFT JOIN ACI1 a5 ON a.BDA01='A' AND cast(a.BBX01 as varchar)=a5.ACI01 LEFT JOIN AAP1 a7 ON a.BDA01='Z' AND a.BBX13=a7.AAP01 LEFT JOIN AAG1 a6 ON a.BDA01='N' AND a.BBX13=cast(a6.AAG01 as varchar(10)) WHERE a.BDA01 >'7' and a.BDA01 <> 'M' and ((a.BBX11 =1)or(a.BBX11 = 0 and a.BBX12 in (1,3,4))) AND a.BBX09 IN (0,?) And a.BBX25 > now() and ((a.BBX30 = 0)or(a.BBX30 = 1 and exists(select * from BIP1 c2 where c2.BBX01 = a.BBX01 and c2.BCK01 = ?))) and ((a.BBX46 = 0)or(a.BBX46 = 1 and exists(select * from BMP1 c3 where c3.BBX01 = a.BBX01 and c3.BDP02 = ?))) AND ((a.BDA01 <> '9')OR((a.BDA01='9') AND ((a.BBX15=0 and a.BCE01 = ?) or a.BBX15=2 or (a.BBX15=1 and exists(select c.* from BAR1 c where a.BBX01=c.BBX01 and c.BCK01 =?))))) AND ? = (a.ACF01 & ?) and (a.BBX04 LIKE ? OR a.bbx36 LIKE ? OR (EXISTS(SELECT g.* FROM BDK1 g WHERE g.BBX01 = a.BBX01 AND (g.BDK03 LIKE ? OR g.ABBRP LIKE ? OR g.ABBRW LIKE ?)))) limit 10 offset ?

14:10:25.822 [main] DEBUG java.sql.PreparedStatement - ==> Parameters: null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null

0

1.2. 配置log 打印sql依然不行,里面有问号。。

1.3. 配置pgsdql sql日志只能抓取到navicate的不能mybatis的。。

1.4. 使用序列化保存的map调用mybatis,然后解析参数,替换ok

package com.cnhis.cloudhealth;

import java.io.File;

import java.io.IOException;

import java.util.Map;

import java.util.Set;

import org.apache.commons.io.FileUtils;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.google.common.collect.Maps;

@SuppressWarnings("all")

public class MybatisUtil {

public static void main(String[] args) throws IOException {

String t1="#{11}";

System.out.println(t1.replace("#{", "aa"));System.out.println(t1.replace("{", "aa"));

String sqlid="C:\\qsql\\t.txt";

String t=FileUtils.readFileToString(new File(sqlid));

String params="{aParam60=0, beh01=1, bbx09=1, vaf58=0, abc02=普通, sqltext=%葡萄糖%, aParamno=0, yiyuanId=-5, bce01=1, acf01=1, aParam1=0, bdp02=自费, offset=0, bckyf=0, bck01=14, aParam106=1}";

params="{aParam60=0, beh01=null, bbx09=1, vaf58=0, abc02=普通, sqltext=%葡萄糖%, aParamno=0, yiyuanId=-5, bce01=1, acf01=1, aParam1=0, bdp02=自费, offset=0, bckyf=0, bck01=108, aParam106=1}";

//   Map<String,Object> m=getM(params);

Map<String,Object> m=(Map) serilizeUtil.serizGetObjFromFile("c:\\logs\\adviceSousuo_kucui_map_8080f6ab-35b1-440f-b1b5-8c1b0ea2de32");

//   JSONObject jo=JSON.parseObject(params);

// Set<Map.Entry<K, V>>

for (Map.Entry  entry : m.entrySet()) {

String key = (String) entry.getKey();

key=key.trim();

System.out.println(key + ":" + entry.getValue());

t=  t.replaceAll("\\#\\{"+key+"\\}", getValueByTypeinSql(entry.getValue()));

}

System.out.println(t);

}

private static String getValueByTypeinSql(Object value) {

if(value.getClass()==String.class)

return  "'"+value.toString()+"'";

if(value.getClass()==Integer.class)

return value.toString();

throw new RuntimeException("getValueByTypeinSql:: value not jude type");

}

private static Map getM(String params) {

Map m=Maps.newConcurrentMap();

params=params.substring(1,params.length()-1);  //de start end one char ..openclose char

String[] entry_arr=params.split(",");

for (String e : entry_arr) {

String[] kva=e.split("=");

m.put(kva[0], kva[1]);

}

return m;

}

}

应用程序获取Mybatis中配置的执行SQL - CSDN博客.html

(5 封私信 _ 45 条消息)如何在mybatis中调试查看生成的sql语句? - 知乎.html

Atitit 得到mybatis 实际 sql 1.1. 使用mybatis工具提供的,只能出现问号一大堆不行 1 1.2. 配置log 打印sql依然不行,里面有问号。。 4 1.3. 配置p相关推荐

  1. mybatis配置log4j打印sql日志

    mybatis配置log4j打印sql日志 前提是你已经配置好了log4j. 在mybatis的配置文件中设置 <?xml version="1.0" encoding=&q ...

  2. mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...

    杂七杂的杂 作为程序员,开发工程中,一套利于测试或者监控的工具很重要,mybatis默认没有提供log4j的打印sql语句的配置. 这对于开发rest服务,提供接口的开发者而言,是在很不好做,再加上m ...

  3. mybatis动态查询(分页排序搜索)+分解关联查询+Logback 日志配置(打印sql到控制台)+mybatis新增记录后返回自增的id。批量=11/2~11/20

    一.mybatis动态查询(分页排序搜索) mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和lim ...

  4. SpringBoot 2-连接数据库、配置logback打印sql日志等

    前言:上节说到新建项目.本节连接数据库  logback  通用mapper配置 实现操作数据库 需要注意的已添加备注  .以下是贴的代码.ps:代码手写一遍加强记忆吧~ pom.xml <?x ...

  5. springboot 项目输出 sql 到控制台、 SpringBoot 中 Mybatis 打印 sql

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. SpringBoot中Mybatis打印sql 如果使用的是 application.propert ...

  6. mybatis 打印SQL

    如果使用的是application.properties文件,加入如下配置: #打印SQL logging.level.com.jn.ssr.supererscuereporting.dao=debu ...

  7. mybatis-plus打印sql日志和参数到日志文件

    在控制台打印sql日志 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 在日志文件打印s ...

  8. Spring Boot使用MyBatis 3打印SQL的配置

    普通Spring下的XML文件配置: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE co ...

  9. mybatis plus 格式话_mybatis plus3.3.2配置打印sql

    如何配置mybatis plus配置打印sql,控制台输出配置显示sql语句进行调试程序如何配置,如何配置mybatis,实测使用mybatis-plus-boot-starter3.3.2成功打印. ...

  10. SpringBoot配置Mybatis打印SQL

    两种方式,一种基于SpringBoot自动装配通过yml文件直接配置,另一种是配置在mybatis的全局配置文件中. 但是两种方式不能同时配置,在SpringBoot V1.5.9以上版本惠报错: P ...

最新文章

  1. 【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)
  2. UPS分类:直流UPS和交流UPS
  3. 7.MongoDB与python交互
  4. android中viewpager+fragment,Android开发之ViewPager+Fragment
  5. Modularity QuickStart学习
  6. 使用代码段遍历,枚举类型Enum
  7. 袁春风 计算机组成原理 chap4,精品计算机组成原理 [袁春风]chap4homework.pdf
  8. html是乱码怎么解决,如何解决html乱码问题
  9. 20脚的RSIC-V MCU,竟然可以基于FOC开发PMSM电机
  10. vue-property-decorator
  11. idea 商业版 社区版_idea社区版和商业版的区别
  12. ubuntu邮件服务器,Ubuntu下搭建mail邮件服务器的方法教程
  13. 玩转Dokuwiki
  14. vue 富文本编辑器提取纯文字
  15. 太湖之光超级计算机应用最高奖,国家超级计算无锡中心发布:“神威·太湖之光”最新应用成果...
  16. 【Verilog】马里奥小游戏的FPGA实现
  17. @RunWith的使用
  18. C# 中where关键字详解
  19. html2canvas页面滚动时截图不全空白问题
  20. Revit一款主要用于进行建筑信息建模的软件

热门文章

  1. 二维数组遍历_布尔值数组的状态压缩
  2. php生成照片流图片,phpcmsv9设计照片流瀑布流等页面按比例等宽完美缩略图方案...
  3. yuv图片拼接 java_java利用ffmpeg把图片转成yuv格式
  4. 25.211 -- 物理层信道
  5. Linux之RedHat7如何更换yum源
  6. Angular使用echarts
  7. 【.NET开发之美】使用ComponentOne提高.NET DataMap中的加载速度
  8. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)
  9. 纳德拉:Excel是微软的最佳象征 难以想象没有它的世界
  10. 【ML入门系列】(一)训练集、测试集和验证集