JSqlparser github地址 JSqlParser is a SQL statement parser. It translates SQLs in a traversable hierarchy of Java classes. JSqlParser is not limited to one database but provides support for a lot of specials of Oracle, SqlServer, MySQL, PostgreSQL … To name some, it has support for Oracles join syntax using (+), PostgreSQLs cast syntax using ::, relational operators like != and so on. JSqlParser 是SQL语句分析的插件,他使用Java语言去解析SQL。 sqlparser提供很多的数据库语法解析支持其中支持很多oracle的特殊语法。 可以结合mybatis的拦截修改SQL来实现多租户、SQL拼接甚至联表的功能。 可以参考我之前写的MyBatis通过拦截修改SQL Maven 引用 远程仓库 依赖包 SQL解析 获取SQL中的信息 创建Select的方式 创建Select(非SQL String 创建) Insert 插入字段和值 输出: SELECT ?, ? FROM mytable WHERE col = ?UPDATE table1 A SET A.columna = ? WHERE A.cod_table = ?INSERT INTO example (num, name, address, tel) VALUES (?, ?, ?, ?)DELETE FROM table1 WHERE col = ? AND col2 = ? where条件中字段替换 替换条件字段col_1到col1 解析SQL例子 可以直接将String SQL片段解析成Expression再将expr插入到SQL语句中。 获取所有tableNames 自动生成别名 结果: SELECT a AS A1, b AS A2, c AS A3 FROM test SQL函数 单表where条件拼装 JOIN 拼装 校验SQL Validates metadata such as names of tables, views, columns for their existence or non-existence 总结 我们可以借助JSqlparser来解析SQL并且动态拼接生成SQL,在Mybatis-plus中的租户其实也是类似这样实现的。 甚至有兴趣的同学可以自己做一个SQL拼装器,将前台筛选的条件转换为SQL进行查询。所有的查询字段、条件、联表等等都做成动态拼装。 以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。



Powered by Internet of Energy Network中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024