JSqlparser'ı keşfetmeye yeni başlamıştım. Anladığım kadarıyla, tablesNamesFinder sütunları ve tabloları ayıklamak için çalışıyorum ve iyi çalışıyor ama çok küçük bir problem. hükümsüz ve çok az durumlar için yazdırır vakaların çoğu içinJSqlParser - Tablo adından başlayarak
@Override
public void visit(Column col) {
Column c = col;
String cname = c.getFullyQualifiedName();
Table t = c.getTable();
System.out.println(t.getName());
}
Bu alışkanlık baskı tablo, bu tablo tablo takma değil yazdırır. Unutmadığım bir şey var mı?
@Override
public void visit(SelectExpressionItem exp){
exp.getExpression().accept(this);
}
@Override
public void visit(Table tableName) {
// System.out.println(tableName.getFullyQualifiedName());
}
@Override
public void visit(Select select) {
select.getSelectBody().accept(this);
}
ve toplam (col1 * col2) gibi toplam işlevler için, bunları İşlevler ziyaretinde yakalayabilirim, daha iyi bir yol var mı? Sorgulamak için verdiğiniz parçaların adlarıyla ilgili daha fazla bilgiye sahip olabilir miyim? Gibi: Seç (col1, col2, col3,) burada col1, col2, col3 seçili gövdedir. Viki alabilir miyim? – Waleed
Emin değilim, ne demek istiyorsun? Bağlamı mı kastediyorsun? Hangi yapı içinde hangi yapı (örneğin hangi fonksiyon)? Bağlam, ayrıştırıcı ağacından türetilebilir. Ziyaretçiyi senin yaptığın gibi kullanmak iyi. – wumpz