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

公众号的微网站怎么做镇江手机网站建设

公众号的微网站怎么做,镇江手机网站建设,wordpress xcache,4昌平区网站建设sql解析#xff0c;转换列表和表名 1、 jsqlparse介绍 JSqlParse是一款很精简的sql解析工具#xff0c;它可以将常用的sql文本解析成具有层级结构的“语法树”#xff0c;我们可以针对解析后的“树节点#xff08;也即官网里说的有层次结构的java类#xff09;”进行处理…sql解析转换列表和表名 1、 jsqlparse介绍 JSqlParse是一款很精简的sql解析工具它可以将常用的sql文本解析成具有层级结构的“语法树”我们可以针对解析后的“树节点也即官网里说的有层次结构的java类”进行处理进而生成符合我们要求的sql形式。 官网给的介绍很简洁JSqlParser 解析 SQL 语句并将其转换为 Java 类的层次结构。生成的层次结构可以使用访问者模式进行访问官网地址JSqlParser - Home。 2 pom坐标 dependencygroupIdcom.github.jsqlparser/groupIdartifactIdjsqlparser/artifactIdversion4.3/version /dependency3 解析工具类 private static String convertSql(String sql, Class? clazz) throws Exception {Select select (Select) CCJSqlParserUtil.parse(sql);SelectBody selectBody select.getSelectBody();if (selectBody instanceof PlainSelect) {PlainSelect plainSelect (PlainSelect) selectBody;Table table (Table) plainSelect.getFromItem();String originTableName table.getName().toLowerCase();Matcher matcher pattern.matcher(originTableName);//如果不符合原来的的表名格式就返回原sqlif (!matcher.find()) {return sql;}String day matcher.group().replace(_, -);long start 0;long end 10;//转换where条件Expression where plainSelect.getWhere();where.accept(new MyWhereExpressionVisitorAdapter());// 不管原来有没有时间条件,都拼接上当天的时间条件String condExpr where and time start and time end;Expression newCondition CCJSqlParserUtil.parseCondExpression(condExpr);plainSelect.setWhere(newCondition);//设置表名TableName annotation clazz.getAnnotation(TableName.class);table.setName(annotation.value());//转换select的列for (SelectItem selectItem : plainSelect.getSelectItems()) {SelectExpressionItem item (SelectExpressionItem) selectItem;item.accept(new MySelectExpressionVisitorAdapter(item, KEY_MAP.get(clazz)));}}//加时间排序return select order by time asc;}3 列名转换 public class MySelectExpressionVisitorAdapter extends ExpressionVisitorAdapter {private SelectExpressionItem item;private MapString, String columnMap;public MySelectExpressionVisitorAdapter(SelectExpressionItem item, MapString, String columnMap) {this.item item;this.columnMap columnMap;}Overridepublic void visit(Column column) {Expression expression item.getExpression();String originColumnName column.getColumnName();String changeColumnName columnMap.get(originColumnName.toUpperCase());if (changeColumnName ! null) {column.setColumnName(changeColumnName);//把原列名当做别名if (!originColumnName.equals(changeColumnName) expression instanceof Column item.getAlias() null) {item.setAlias(new Alias(originColumnName));}}}Overridepublic void visit(Function function) {String name function.getName();if (round.equalsIgnoreCase(name)) {function.getParameters().getExpressions().remove(1);function.setName();}super.visit(function);}4 条件转换 public class MyWhereExpressionVisitorAdapter extends ExpressionVisitorAdapter {Overrideprotected void visitBinaryExpression(BinaryExpression expression) {if (!(expression instanceof ComparisonOperator)) {super.visitBinaryExpression(expression);return;}Column column (Column) expression.getLeftExpression();String columnName column.getColumnName();if (isAgain.equalsIgnoreCase(columnName)) {column.setColumnName(isAgain);Expression rightExpression expression.getRightExpression();if (rightExpression instanceof LongValue) {LongValue tmp (LongValue) rightExpression;tmp.setStringValue(String.valueOf(tmp.getValue()0));}} else if (time.equalsIgnoreCase(columnName)) {column.setColumnName(time);changeTime((ComparisonOperator) expression);} else if (changeWhereSerialColumName(columnName)) {column.setColumnName(serialNum);}}/*** 转换时间条件列* param comparisonOperator*/private void changeTime(ComparisonOperator comparisonOperator) {Expression rightExpression comparisonOperator.getRightExpression();if (rightExpression instanceof StringValue) {long value DateTimeUtilJdk8.getTimeMilli(((StringValue) rightExpression).getValue());LongValue longValue new LongValue();longValue.setValue(value);comparisonOperator.setRightExpression(longValue);}}private boolean changeWhereSerialColumName(String column) {return LindormUtil.getOriginalSerialNumName().contains(column.toUpperCase());}测试 public static void main(String[] args) throws Exception {String sql select ID, username,password from Tbl_db_2023_06_26 where id007;System.out.println(convertSql(sql, Object.class));}
http://www.huolong8.cn/news/420180/

相关文章:

  • 公司网站建设如何做账网站栏目模版
  • 西安网站建设优化服务公司徐州网站网站建设
  • 辽宁品牌建设促进会 网站南京网站公司
  • 网站制作在哪里的dw做网站怎么替换字体
  • 产品列表型网站模板免费软件app下载大全
  • 佛山响应式网站开发网站接入支付宝需要网站备案吗
  • 小说网站开发设计做网站最好的工具
  • 黄页网站代码局域网建设网站如何访问
  • 徐州新沂网站建设东莞技术支持 骏域网站建设
  • 承德网站开发公司广东建设部网站
  • 松原网站建设那个网站做3d
  • wordpress 双语网站做餐饮网站价格
  • 成都正规集团网站制作维护68设计网站
  • 网站运营优化培训wordpress标签加标题
  • 个人网站建站需要准备什么网站安全建设 需求分析
  • 高校信息化建设网站系统微信psd 网站
  • 做视频网站一般多少钱根据 我司申请 网站建设
  • 广州网站优化方式唐山做网站那家好
  • 东莞企业网站多少钱临汾网站建设电话
  • 画图在什么网站上做兼职wordpress 如何修改网页标题字体
  • 网站流量 次什么做书籍的网站
  • 淘宝店购买网站学校网站建设说明材料
  • 旅游网站建设目标网站分类创业园网站建设
  • 北京市建设资格注册中心网站相亲网站开发与设计报告
  • 网站优化关键词电子书网站建设
  • 建设教育协会培训网站婚庆网站论文
  • 一般做兼职在哪个网站网站首页页面设计
  • 北京海淀社保网站企业做网站和宣传册的作用
  • 山西传染病最新消息今天网站优化排名分享隐迅推
  • wordpress手机端网站模板做淘宝客没网站