使用JDBC可以连接不同的数据库,通常这些数据库之间会有一些差异,很多时候开发人员需要知道所使用的数据库的具体特性,比如数据库所使用的数据类型,是否支持存储过程、是否支持批量更新数据等,绝大多数的数据库详细信息都可以使用DatabaseMetaData对象获取到。
DatabaseMetaData对象提供了丰富的方法用于获取数据库的信息,比如getURL方法可以获得当前数据库的URL。SupportStoredProcedures方法可以返回一个布尔值用于指出当前数据库是否支持存储过程。
当DatabaseMetaData方法试图获取某个数据库系统不支持的特性时,就会抛SQLException异常,或者返回一个空的ResultSet对象。
下面是DatabaseMetaData使用的核心代码
String jdbcURL = "jdbc:mysql://localhost:3306/codingwhy?useUnicode=true&characterEncoding=utf-8"; String jdbcUser = "root"; String jdbcPassword = ""; Class.forName("com.mysql.jdbc.Driver",2); Connection conn = DriverManager.getConnection(jdbcURL,jdbcUser,jdbcPassword,2); DatabaseMetaData databaseMetaData = conn.getMetaData(,2); String driverName = databaseMetaData.getDriverName(,2); System.out.println("JDBC驱动程序的名字:\t"+driverName,2);