Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要用java检索SQL Server对象信息_Java_Sql Server - Fatal编程技术网

我需要用java检索SQL Server对象信息

我需要用java检索SQL Server对象信息,java,sql-server,Java,Sql Server,我需要从结构的角度从SQLServer检索信息 示例:我需要列出所有数据库、所有过程、过程中的所有参数、表中的所有列名、表列中的列类型 这种方法是如何实现的 谢谢,签出界面有(至少)三种方式 使用DatabaseMetaData类。其中有很多内容,因此有关详细信息,请参阅Java文档。我相信这是首选的方法,因为它是所有数据库引擎的标准。因此,如果您切换到另一个数据库引擎,它应该仍然可以工作,并且无论您使用的是这个数据库引擎还是其他数据库引擎,您所学到的关于如何使用它的知识都将适用 对“信息模式”

我需要从结构的角度从SQLServer检索信息

示例:我需要列出所有数据库、所有过程、过程中的所有参数、表中的所有列名、表列中的列类型

这种方法是如何实现的

谢谢,签出界面有(至少)三种方式

  • 使用DatabaseMetaData类。其中有很多内容,因此有关详细信息,请参阅Java文档。我相信这是首选的方法,因为它是所有数据库引擎的标准。因此,如果您切换到另一个数据库引擎,它应该仍然可以工作,并且无论您使用的是这个数据库引擎还是其他数据库引擎,您所学到的关于如何使用它的知识都将适用

  • 对“信息模式”进行查询。基本上,这是一个包含数据库结构信息的数据库。它有列出所有表、所有列等的表。这是第二个最佳选择。信息模式在数据库中或多或少是标准的。不幸的是,MS SQL Server的实现不是最好的

  • 对“系统表”和/或“系统视图”执行查询。MS SQL Server中有一组表,其中包含有关数据库结构的信息。与informationxu模式一样,它是特定于mssqlserver的,因此包含了不属于标准SQL的东西的元数据,例如计算字段和标识列。它也比MS的信息模式实现更完整、更可靠

  • 对于真正一般的东西,比如数据库中有哪些表或给定表中有哪些列,信息模式和系统表同样好用。但是,如果您还需要其他很多东西,那么MS对information_模式的实现很快就会证明是不够的。我在网上看到了很多鼓励开发人员使用系统表而不是信息模式的评论。我不喜欢使用非标准的东西,因为代码本身和获得的经验都是不可移植的,但在这种情况下,我认为它们是正确的:使用系统表

    但是,如果数据库元数据能满足您的需要,它就更好了