添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
卖萌的充电器  ·  资源 | ...·  1 年前    · 
眼睛小的大白菜  ·  Time Travel Debugging ...·  1 年前    · 
宽容的大熊猫  ·  javascript - ...·  1 年前    · 
@Test public void buildSelectSql ( ) throws JSQLParserException { Select select01 = SelectUtils . buildSelectFromTable ( new Table ( "test" ) ) ; System . err . println ( select01 . getSelectBody ( ) . toString ( ) ) ; // SELECT * FROM test Select select02 = SelectUtils . buildSelectFromTableAndExpressions ( new Table ( "test" ) , new Column ( "col1" ) , new Column ( "col2" ) ) ; System . err . println ( select02 . getSelectBody ( ) . toString ( ) ) ; // SELECT col1, col2 FROM test Select select03 = SelectUtils . buildSelectFromTableAndExpressions ( new Table ( "mytable" ) , "col1" , "col2" ) ; System . err . println ( select03 . getSelectBody ( ) . toString ( ) ) ; // SELECT col1, col2 FROM test * 构建插入语句 @Test public void buildInsertSql ( ) { // 创建表对象设置表名 Table table = new Table ( ) ; table . setName ( "table" ) ; // 创建插入对象 Insert insert = new Insert ( ) ; insert . setTable ( table ) ; // 设置插入对象的表对象 // 设置插入列 List < Column > columnList = Arrays . asList ( new Column ( "col01" ) , new Column ( "col02" ) ) ; insert . setColumns ( columnList ) ; // 设置插入值 MultiExpressionList multiExpressionList = new MultiExpressionList ( ) ; multiExpressionList . addExpressionList ( Arrays . asList ( new StringValue ( "1" ) , new StringValue ( "2" ) ) ) ; insert . setItemsList ( multiExpressionList ) ; System . err . println ( insert ) ; // INSERT INTO table (col01, col02) VALUES ('1', '2') * 构建更新语句 @Test public void buildUpdateSql ( ) { // 创建表对象设置表名 Table table = new Table ( ) ; table . setName ( "table" ) ; // 创建更新对象 Update update = new Update ( ) ; update . setTable ( table ) ; // 设置更新对象的表对象 // 设置更新列 List < Column > columnList = Arrays . asList ( new Column ( "col01" ) , new Column ( "col02" ) ) ; update . setColumns ( columnList ) ; // 设置更新值 update . setExpressions ( Arrays . asList ( new StringValue ( "1" ) , new StringValue ( "2" ) ) ) ; // 添加Where条件 EqualsTo equalsTo = new EqualsTo ( ) ; // 等于表达式 equalsTo . setLeftExpression ( new Column ( table , "user_id" ) ) ; // 设置表达式左边值 equalsTo . setRightExpression ( new StringValue ( "123456" ) ) ; // 设置表达式右边值 update . setWhere ( equalsTo ) ; // 设置Where * 构建删除语句 @Test public void buildDeleteSql ( ) { // 创建表对象设置表名 Table table = new Table ( ) ; table . setName ( "table" ) ; // 创建更新对象 Delete delete = new Delete ( ) ; delete . setTable ( table ) ; // 设置更新对象的表对象 // 添加Where条件 EqualsTo equalsTo = new EqualsTo ( ) ; // 等于表达式 equalsTo . setLeftExpression ( new Column ( table , "user_id" ) ) ; // 设置表达式左边值 equalsTo . setRightExpression ( new StringValue ( "123456" ) ) ; // 设置表达式右边值 delete . setWhere ( equalsTo ) ; // 设置Where // 输入语句 System . err . println ( delete ) ; 赠送jar包: jsqlparser -4.3.jar; 赠送原API文档: jsqlparser -4.3- java doc.jar; 赠送源代码: jsqlparser -4.3-sources.jar; 赠送Maven依赖信息文件: jsqlparser -4.3.pom; 包含翻译后的API文档: jsqlparser -4.3- java doc-API文档-中文(简体)版.zip; Maven坐标:com.github. jsqlparser : jsqlparser :4.3; 标签:github、 jsqlparser 、jar包、 java 、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 如果从 简单 SQL 语句中获取表名,那么可以通过不严谨的关键字匹配的方式获取或者正则表达式的方式获取表名。但是这种做法不具有通用性,遇到复杂的 SQL 语句就会存在BUG。严谨的做法当然是通过 SQL 分析工具分析 SQL 结构并获取 SQL 信息, Jsqlparser 就是这样的工具,为我们的 SQL 分析提供了便利。下面通过一个 简单 的例子可以了解到 Jsqlparser 的实现机制,举一反三,更多的应用都是可以做到的。/... 赠送jar包: jsqlparser -1.4.jar; 赠送原API文档: jsqlparser -1.4- java doc.jar; 赠送源代码: jsqlparser -1.4-sources.jar; 赠送Maven依赖信息文件: jsqlparser -1.4.pom; 包含翻译后的API文档: jsqlparser -1.4- java doc-API文档-中文(简体)版.zip; Maven坐标:com.github. jsqlparser : jsqlparser :1.4; 标签:github、 jsqlparser 、中文文档、jar包、 java ; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 JSqlParser 是一个 SQL 语句解析器,它可以把 SQL 转换为 Java 对象进行操作的工具包,支持Oracle, Sql Server, MySQL ,Postgre SQL 等常用 数据库 。 熟悉了J sql 插件的一些基本使用情况以后,发现还有一些不足,目前把这几天写的东西放上来了。解决一些这样的问题:    1.给定的 SQL 语句是否满足基本语法问题?——我尝试将String转化为statement将J sql 的异常信息保存,并提取有效信息,返回错误单词+位置信息    2. insert 语句批量插入数据的修改————正则匹配values并保存到List>中,replace函数替换原来S public void testSelectOneTable() throws JSQLParser Exception { // 单表全量 Table table = new Table("test"); 注:内容均以 java 实现 这件事情,起始我们可以通过 jsqlparser 这款良心工具来完成。但是拿人家的东西来用就没机会锻炼自己了,正好最近工作上碰到了这个问题,就顺便来写个日志记录下吧。 这里做一个前提假设: sql 没有语法错误 虽然 sql 没有语法错误,但无法保证 sql 中带有注释符号,有的 sql 还带着很大的空行以及很长的空格。【我们公司的客服和老板都热爱能写 sql ,他们就是慢 sql 和不规范 sql 的缔造者,甚至一度引起公司内部服务器瘫痪,嘘!】 言归正传,先把 sql 按一个规则垂直分割,请围观 java JSqlParser 是一个 SQL 语句解析器。它将 SQL 转换为 Java 类的可遍历层次结构。 支持Oracle, Sql Server, MySQL ,Postgre SQL 等常用 数据库 。但各种 数据库 系统的 SQL 语法都在动态变化,可以解析某些(不是全部)。 JSqlParser 就是一个把 SQL 转换为 JAVA 对象操作的工具包,但是发现此类文章较少,文档也不太详细,所以写个 系列 博客供参考。 GitHub地址 入门 案例 添加pom <dependency> 1、 j sql parse介绍 J Sql Parse是一款很精简的 sql 解析工具,它可以将常用的 sql 文本解析成具有层级结构的“语法树”,我们可以针对解析后的“树节点(也即官网里说的有层次结构的 java 类)”进行处理进而生成符合我们要求的 sql 形式。 官网给的介绍很简洁: JSqlParser 解析 SQL 语句并将其转换为 Java 类的层次结构。生成的层次结构可以使用访问者模式进行访问(官网地址: JSqlParser - Home)。 官网的介绍即是该中间件的全部,虽然介绍很短,但是其功能着实强悍。