DatabaseMetaData接口主要用来得到关于数据库的信息如数据库中所有表格的列表、系统函数、关键字、数据库产品名和数据库支持的JDBC驱动器名。
DatabaseMetaData类的实例对象是通过Connection接口的getMetaData方法创建的
DatabaseMetaData提供大量获取信息的方法,这些方法可分为两大类:
一类返回值为BOOLEAN型,多用以检查数据库或驱动器是否支持某项功能;
另一类则用获取数据库或驱动器本身的某些特征值,返回值可能为整型,可能为字符串型,甚至可能是ResultSet接口的对象。
DatabaseMetaData常用方法:
boolean supportsOuterJoins()检查数据库是否支持外部连接
boolean supportsStoredProcedures()检查数据库是否支持存储过程
String getUserName()该方法的功能是获取当前用户名
通过DataBaseMetaData对象提取数据库的相关原始信息,包括连接URL、数据库版本等
dbmeta.jsp:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.net.URL"%>
<html>
<head><title>获取ShopSystem数据库信息</title></head>
<%
Connection conn=null;
try{
Class.forName("com.microsoft.sqlserver.JDBC.SQLServerDriver");//加载Microsoft公司的JDBC驱动程序
String strConn="JDBC:sqlserver://LIUZC\\SQLEXPRESS:1433;DatabaseName=a";//设置连接字符串
String strUser="sa";
String strPassword="liuzc518";
conn=DriverManager.getConnection(strConn,strUser,strPassword);//创建连接对象
DatabaseMetaData dmd=conn.getMetaData();//创建数据库元数据对象dmd
out.println("ShopSystem数据库信息");
out.println("连接到URL:"+dmd.getURL()+"<br>");
out.println("驱动程序名:"+dmd.getDriverName()+"<br>");
out.println("驱动程序版本:"+dmd.getDriverVersion()+"<br>");
out.println("最大连接数:"+dmd.getMaxConnections()+"<br>");
out.println("数据库名:"+dmd.getDatabaseProductName()+dmd.getDatabase ProductVersion()+"<br>");
out.println("数据库是否支持外部连接:"+"<br>");
if(dmd.supportsOuterJoins())
out.println("是");
else
out.println("否");
}
catch(ClassNotFoundException e)
{
out.println(e.getMessage());
}
catch(SQLException e)
{
out.println(e.getMessage);
}
finally{
try{
if(conn!=null)
conn.close();
}
catch(Exception e){}
}
%>
</html>
executeUpdate():一般用于执行SQL 的insert、update、delete、也可以执行SQL数据定义语言如create、alter、drop等.返回影响的记录总行数。
executeQuery():一般用于执行SQL的select。返回ResultSet接口实例(即结果集)
execute():一般在不知道执行SQL语句后会产生什么结果或可能有多种类型的结果产生时才会使用。返回ResultSet结果集和影响的记录总行数。
本文介绍了如何使用Java的DatabaseMetaData接口获取数据库的详细信息,包括URL、版本、支持的功能等,并通过示例代码展示了如何实现这一过程。

494

被折叠的 条评论
为什么被折叠?



