插件开发中获取所有数据库配置信息
在IDEA插件看开发的时候需要获取已经配置好的数据库连接,进行数据库访问,但是本人在官方文档没有找到对应的获取方式,通过Debug发现可以使用如下方式进行获取,
-
获取所有数据库信息
代码如下:// 获取Databa插件中所有的数据库配置信息 DatabaseView databaseView = DatabaseView.getDatabaseView(e.getProject()); TreeModel model = databaseView.getTree().getModel(); // 通过反射获取children,这些children就是数据库连接配置节点 TreeSet<BasicNode> children = ReflectUtils.getValue(model.getRoot(), "children"); Iterator<BasicNode> iterator = children.iterator(); // 遍历所有的数据库配置 while (iterator.hasNext()){ BasicNode next = iterator.next(); System.out.println(next.getDisplayName()); }
部分代码截图
-
通过上述步骤获取的配置,进行数据库访问
代码如下:DatabaseView databaseView = DatabaseView.getDatabaseView(e.getProject()); TreeModel model = databaseView.getTree().getModel(); TreeSet<BasicNode> children = ReflectUtils.getValue(model.getRoot(), "children"); // 这里做演示就只使用最后一个数据库连接 AbstractDataSource realDataSource = ((DataSourceNode) children.last()).realDataSource; LocalDataSource localDataSource = (LocalDataSource) realDataSource; //通过数据库连接管理创建连接 GuardedRef<DatabaseConnection> connectionGuardedRef = DatabaseConnectionManager.getInstance().build(project, localDataSource).create(); // 获取数据库连接 DatabaseConnection databaseConnection = connectionGuardedRef.get(); RemoteConnection remoteConnection = databaseConnection.getRemoteConnection(); // 开始执行sql RemoteStatement statement = remoteConnection.createStatement(); RemoteResultSet remoteResultSet = statement.executeQuery("select * from example.table"); boolean next = remoteResultSet.next(); String string = remoteResultSet.getString(1);
插件的开发环境大致信息如下
数据库的插件开发需要使用专业版IU进行开发
需要在plugin.xlm中配置depends
插件开发对应的idea版本如下