2016-12-01 118 views
2

我正在使用Intellij(所有產品:phpStorm,Rider,Idea等)插件從數據源(數據庫工具窗口)生成代碼。Intellij插件:從數據庫獲取存儲過程

我得到所需要的數據是這樣的:

// Get all data sources 
ProjectManager pm = ProjectManager.getInstance(); 
Project[] projects = pm.getOpenProjects(); 
Arrays.stream(projects).map(project -> 
     DbPsiFacade.getInstance(project).getDataSources()) 
     .flatMap(Collection::stream).collect(Collectors.toList()); 
// Get Tables 
DasUtil.getTables(source); 
// Get columns 
DasUtil.getColumns(table); 

但是我沒有找到任何辦法讓DbRoutine的名單,這似乎代表了存儲過程。

任何人都知道如何得到它?

謝謝

回答

0

我終於用不同的方法做的:

DbDataSource dataSource = ...; 
dataSource.getModel().traverser().forEach(dasObject -> 
    { 
     if (dasObject instanceof DasTable) { 
     } 
     else if (dasObject instanceof DasColumn) { 
     } 
     else if (dasObject instanceof DasIndex) { 
     } 
     else if (dasObject instanceof DasConstraint) { 
     } 
     else if (dasObject instanceof DasRoutine) { 
     } 
    });