Check Syntax of database Query using Java
Use below maven dependency.
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9</version>
</dependency>
package org.script.validation;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.insert.Insert;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.statement.update.Update;
public class ScriptValidation {
public static void parseSelect(String query) {
try {
System.out.println("Parsing Select..");
Select select = (Select) CCJSqlParserUtil.parse(query);
System.out.println("Select Successfully Parsed");
}
catch (Exception e) {
// TODO: handle exception
System.out.println("Error Parsing in select");
e.printStackTrace();
}
}
public static void parseInsert(String query) {
try {
System.out.println("Parsing Insert..");
Insert insert = (Insert) CCJSqlParserUtil.parse(query);
System.out.println("Insert Successfully Parsed");
System.out.println(insert.getTable());
System.out.println(insert.getColumns());
System.out.println(insert.getItemsList().toString());
}
catch (Exception e) {
// TODO: handle exception
System.out.println("Error Parsing in Insert");
e.printStackTrace();
}
}
public static void main(String[] args) {
String select="SELECT MLG_ID, MLG_KEY_NAME, LOCALE_CODE, MLG_TEXT, STATUS_CODE, LAST_UPDT_BY_ID, LAST_UPDT_ON_TS, RAPIDM_ID, RAPIDM_TYPE\r\n"
+ "FROM RAPIDM_CNFG_RKS_HCA.MLG_VALUE\r\n"
+ "WHERE MLG_ID=141111;\r\n"
+ "";
String insert1="INSERT INTO RAPIDM_CNFG_RKS_HCA.MLG_VALUE(MLG_ID, MLG_KEY_NAME, LOCALE_CODE, MLG_TEXT, STATUS_CODE, LAST_UPDT_BY_ID, LAST_UPDT_ON_TS, RAPIDM_ID, RAPIDM_TYPE) VALUES\r\n"
+ "(1550, 'DOC_CENTER_BODY_A_DOC_CENTER_SUBMITTED', 'en_us', 'Submitted', 'A', 'MULTI_CH_X5224_X52242002', '10/14/2022', NULL, NULL);\r\n"
+ "";
parseSelect(select);
parseInsert(insert1);
}
}
No comments: