2016-12-01 116 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) { 
     } 
    });