获取Mybatis中的sql
项目中需要获取mapper中的sql语句,方便Influxdb使用,分有参数和无参数
1、有参数
public static String getSql(String id, Object parameterObject){ String sql = factory.getConfiguration().getMappedStatement(id).getBoundSql(parameterObject).getSql(); List<ParameterMapping> parameterMappings = factory.getConfiguration().getMappedStatement(id).getSqlSource().getBoundSql(parameterObject).getParameterMappings(); String val = null; for(ParameterMapping mapping : parameterMappings){ try { val = BeanUtils.getProperty(parameterObject, mapping.getProperty()); } catch (Exception e) { e.printStackTrace(); } sql = sql.replaceFirst("\\?", val); log.debug("mapping: {} pro: {} val:{}", mapping, mapping.getProperty(), val); } return sql;
2、无参数
public static String getSql(String id){ String sql = factory.getConfiguration().getMappedStatement(id).getBoundSql(null).getSql(); return sql; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)