当前位置: 首页 > news >正文

张家港市规划建设网站wordpress 七牛视频教程

张家港市规划建设网站,wordpress 七牛视频教程,网站建设公司销售经理职责,唐山官方网站建设将SQL中的占位符替换成参数 描述 描述 此方法是将SQL中的${}或#{}替换为直接拼接到SQL中或直接替换为?的形式。具体详情看下面代码。 import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** author HuYu* date 2023-09-21* since 1.0**…

将SQL中的占位符替换成参数

  • 描述

描述

此方法是将SQL中的${}或#{}替换为直接拼接到SQL中或直接替换为?的形式。具体详情看下面代码。

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** @author HuYu* @date 2023-09-21* @since 1.0**/
public class Test {public static void main(String[] args) throws Exception {String sql = "SELECT * FROM t_user WHERE id = #{id} AND username =#{username} GROUP BY username ORDER BY id ;";Map<String, Object> params = new HashMap<>();params.put("id", 1);params.put("username", "admin");Map<String, Object> map = replaceSqlPlaceholder(sql, "#{", "}", params);System.out.println(map);}/*** 功能描述:将带有占位符的SQL解析成可执行SQL,openToken传 #{ 则以?占位符方式,openToken传${则采用字符串拼接的方式,* 如果 params 中的参数是数值类型会直接拼接,如果是字符串类型,会填充为 'params.get(key)' 的模式。* @param sql        sql字符串* @param openToken  开始标记token 只能是#{或${* @param closeToken 结束标记 }* @param params     参数map,比如 sql中包含 #{id} ,那么会从该map中查找 key为id的值填充到SQL中作为参数* @return java.util.Map<java.lang.String, java.lang.Object>* @author compass* @date 2024/7/21 12:16* @since 1.0**/public static Map<String, Object> replaceSqlPlaceholder(String sql, String openToken, String closeToken, Map<String, Object> params) {Map<String, Object> resultMap = new HashMap<>();String fill = "#";String placeholder = "$";String type = openToken.contains(fill) ? fill : placeholder;if (sql==null || sql.trim().length()<=0){throw  new IllegalArgumentException("sql 不能为空!");}if (!sql.contains("$") || !sql.contains("#")){resultMap.put("sql",sql);return resultMap;}if ( (sql.contains("$") || sql.contains("#") )&& (params == null || params.size() <= 0)){throw  new IllegalArgumentException("发现SQL中存在占位符 但是 params 中未发现填充参数!");}if (!Arrays.asList("#{","${").contains(openToken)){throw  new IllegalArgumentException("openToken 只能是 #{或 ${!");}if (!"}".equals(closeToken)){throw  new IllegalArgumentException("closeToken 只能是}!");}char[] openTokeChars = openToken.toCharArray();List<Object> dataList = new ArrayList<>();String regx = openTokeChars[0] + "\\\\" + openTokeChars[1] + "([^" + closeToken + "]*)}";regx = regx.replace("\\\\", "\\");Pattern pattern = Pattern.compile(regx);Matcher matcher = pattern.matcher(sql);StringBuffer result = new StringBuffer();while (matcher.find()) {String matcherContent = matcher.group(1);if (placeholder.equals(type)) {Object arg = params.get(matcherContent);String paramValue = "";if (arg instanceof String) {paramValue = "'" + arg + "'";} else {paramValue = arg.toString();}matcher.appendReplacement(result, paramValue);} else {matcher.appendReplacement(result, "?");dataList.add(params.get(matcherContent));}}matcher.appendTail(result);resultMap.put("sql", result.toString());resultMap.put("args", dataList);return resultMap;}
}
http://www.yayakq.cn/news/460887/

相关文章:

  • 做网站需要技术长沙网站建设平台
  • html5公司网站源码php网站建设培训
  • 部门网站建设整改北京室内设计公司排名榜
  • 所见即所得网站管理系统摄影网站建设目的
  • 移动应用开发和网站开发如何解析网站
  • 怎么在子域名建立一个不同的网站沈阳网站备案照相
  • 英铭长沙网站建设网站建设公司报价
  • 乐清新闻最新消息视频seo营销排名
  • 济南网站建设推广报价页面设计属于什么知识产权
  • python做网站安全性做网站难吗?
  • 武进建设局网站进不去北京传媒公司排名
  • 自己做网站需要购买服务器吗有微信公众号怎么做微网站
  • 十堰市茅箭区建设局网站软件开发定制图片
  • 凡科注册的网站怎么被百度收录阿里巴巴网站服务器成本
  • 网页在线制作网站建设网站公司价格
  • 能玩游戏的网站上海高端品牌网站制作
  • 设计实例网站天津外贸建站公司
  • 工业设计网站哪个好用wordpress去掉父分类
  • seo网站优化代码猎聘网招聘官方网站
  • 触摸屏网站如何做签订网站建设协议应注意事项
  • 建站管理过程电子商务网站建设结业论文
  • 西安正规网站建设公司wordpress 2015
  • 国内网站备案要多久招聘网58同城官网
  • 西乡做网站哪家便宜可视化的网站开发工具
  • 网站要钱怎么期货模拟网站开发
  • 电子网站建设实验报告平面广告设计赏析
  • 百度网站 收录降低
  • 建设一个网站需要什么硬件软件启东市住房和城乡建设局网站
  • h5移动端网站模板wordpress漂浮按钮
  • 服务器网站模板上海建设网站找哪家