-
Notifications
You must be signed in to change notification settings - Fork 169
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #44 from hoperunChen/tbs/TV360X-2551
for TV360X-2551 添加在sql语句最外层添加OrderBy字段
- Loading branch information
Showing
11 changed files
with
325 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
128 changes: 128 additions & 0 deletions
128
minidao-pe-example/src/test/java/test/SqlParserTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
package test; | ||
|
||
import org.jeecgframework.minidao.sqlparser.impl.JsqlparserSqlProcessor; | ||
import org.jeecgframework.minidao.sqlparser.impl.SimpleSqlProcessor; | ||
import org.jeecgframework.minidao.util.MiniDaoUtil; | ||
import org.junit.Test; | ||
|
||
/** | ||
* @Description: sql解析单元测试 | ||
* @Author: chenrui | ||
* @Date: 2024/9/27 15:46 | ||
*/ | ||
public class SqlParserTest { | ||
|
||
/** | ||
* 测试miniDaoUtil:添加order by | ||
* @author chenrui | ||
* @date 2024/9/27 19:14 | ||
*/ | ||
@Test | ||
public void testAddOrderMiniUtil() { | ||
// 复杂嵌套语句 | ||
String sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name ORDER BY theme_name2 Desc,theme_name1,theme_name;"; | ||
System.out.println("before:" + sql); | ||
String result1 = MiniDaoUtil.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after:" + result1); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name;"; | ||
result1 = MiniDaoUtil.addOrderBy(sql, "base_theme_name", true); | ||
// 普通语句 | ||
System.out.println("after1:" + result1); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM ABC order By theme_name DESC"; | ||
System.out.println("before2:" + sql); | ||
result1 = MiniDaoUtil.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after2:" + result1); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM ABC"; | ||
System.out.println("before3:" + sql); | ||
result1 = MiniDaoUtil.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after3:" + result1); | ||
} | ||
|
||
|
||
/** | ||
* 测试jsqlParser的添加排序功能 | ||
* @author chenrui | ||
* @date 2024/9/27 19:14 | ||
*/ | ||
@Test | ||
public void testAddOrderJSqlParser() { | ||
JsqlparserSqlProcessor processor = new JsqlparserSqlProcessor(); | ||
String sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name ORDER BY theme_name2 Desc,theme_name1,theme_name;"; | ||
System.out.println("before:" + sql); | ||
String newSql = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after:" + newSql); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name;"; | ||
System.out.println("before1:" + sql); | ||
newSql = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after1:" + newSql); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name ORDER BY base_theme_name Desc;"; | ||
System.out.println("before2:" + sql); | ||
newSql = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after2:" + newSql); | ||
} | ||
|
||
/** | ||
* 测试简单解析器的添加排序功能 | ||
* @author chenrui | ||
* @date 2024/9/27 19:14 | ||
*/ | ||
@Test | ||
public void testAddOrderSimpleParser() { | ||
SimpleSqlProcessor processor = new SimpleSqlProcessor(); | ||
// 复杂嵌套语句 | ||
String sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name ORDER BY theme_name2 Desc,theme_name1,theme_name;"; | ||
System.out.println("before:" + sql); | ||
String result1 = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after:" + result1); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name;"; | ||
result1 = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after1:" + result1); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM (" + | ||
"SELECT x.theme_name,(" + | ||
"SELECT theme_name FROM (" + | ||
"SELECT e.theme_name FROM BASE_INFO e WHERE e.THEME_CODE='3' ORDER BY e.VERSION*1 DESC) WHERE ROWNUM=1) AS base_theme_name FROM BUSINESS_INDEX x WHERE 1=1) " + | ||
"GROUP BY theme_name,base_theme_name ORDER BY base_theme_name Desc;"; | ||
System.out.println("before2:" + sql); | ||
result1 = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after2:" + result1); | ||
// 普通语句 | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM ABC order By theme_name DESC"; | ||
System.out.println("before3:" + sql); | ||
result1 = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after3:" + result1); | ||
sql = "SELECT COUNT(*) AS count,theme_name,base_theme_name FROM ABC"; | ||
System.out.println("before4:" + sql); | ||
result1 = processor.addOrderBy(sql, "base_theme_name", true); | ||
System.out.println("after4:" + result1); | ||
} | ||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.