Intellij 插件:从数据库获取存储过程
Intellij plugin: get stored procedure from database
我正在开发 Intellij(所有产品:phpStorm、Rider、Idea 等)插件以从数据源(数据库工具 window)生成代码。
我得到了这样的所需数据:
// 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的列表,这似乎代表存储过程。
有人知道怎么弄吗?
谢谢
我终于用不同的方法做到了:
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) {
}
});
我正在开发 Intellij(所有产品:phpStorm、Rider、Idea 等)插件以从数据源(数据库工具 window)生成代码。
我得到了这样的所需数据:
// 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的列表,这似乎代表存储过程。
有人知道怎么弄吗?
谢谢
我终于用不同的方法做到了:
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) {
}
});