初めてJSQLPARSERを使用しています。私は動的に来るいくつかのSQLファイルを持って、私はそのSQLからテーブルと列の名前を読み取る必要があります。たくさんのグーグルの後、私はJSQLPARSERを試しました。私はファイルから列名を読み込もうとしていますが、式のために列名を読み取ることができません。間違ったところでコードを修正してください。JSQLPARSEを使用してSQlからテーブル名とカラム名を取得する方法
public static void main(String[] args) throws JSQLParserException
{
// TODO Auto-generated method stub
String statement="SELECT LOCATION_D.REGION_NAME, LOCATION_D.AREA_NAME, COUNT(DISTINCT INCIDENT_FACT.TICKET_ID) FROM LOCATION_D, INCIDENT_FACT WHERE (LOCATION_D.LOCATION_SK=INCIDENT_FACT.LOCATION_SK) GROUP BY LOCATION_D.REGION_NAME, LOCATION_D.AREA_NAME";
CCJSqlParserManager parserManager = new CCJSqlParserManager();
Select select=(Select) parserManager.parse(new StringReader(statement));
PlainSelect plain=(PlainSelect)select.getSelectBody();
List selectitems=plain.getSelectItems();
System.out.println(selectitems.size());
for(int i=0;i<selectitems.size();i++)
{
Expression expression=((SelectExpressionItem) selectitems.get(i)).getExpression();
System.out.println("Expression:-"+expression);
Column col=(Column)expression;
System.out.println(col.getTable()+","+col.getColumnName());
}
}