网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.JAVA反射技术(二).
.MD5的Java Bean实现.
.同网页内两个Applet通信.
.java指南之使用图形:自定义绘图.
.getUTCSeconds 方法.
.J2EE中的业务逻辑和数据库访问决.
.JAVA实现:文件选择器中运行.exe.
.Java异常学习心得.
.初探Java类加载机制.
.Hacking swing: 一个J.
.PASX简化Java开发.
.JFC/Swing活学活用之定制JList显.
.跟你一起分析JAVA中文比较问题的.
.Struts VS Turbine.
.引用外部类对象.
.“快”在细节 J2EE程序的性能优化.
.利用 Oracle DMS 测量 Java 应用.
.Maven 专题之一.
.用Java制作十六进制编辑器.
.如何在代码中自动实现设计规范(组.

新手上路:JDBC初级应用实例(二)

发表日期:2008-1-5



  有时,我们对一种新的数据库根本不知道它的结构或者是其中的内容,好坏么我们如何来获取数据库的情况呢?
  
  真实的例子是这样的,我的朋友的公司接到了一个单子,对方使用的数据库是叫什么\"titanium\"的,说实话由于本人的孤陋寡闻,在此之前从来不知道还有这种数据库,更别说如何访问了,现在朋友要看里面有什么\"东西\",当然是一筹莫展.所以只好找我.
  
  接到电话后,我先问他是什么平台上跑的,假如连结的,他说是在windows下可以建立ODBC数据源,哈哈,就是说可以用Java建立Connection了,OK只能建立一下Connection,那么就可以得到这个数据库的所有元信息:
  
  DatabaseMetadata dbmd = conn.getMetadata();然后你可以从这个对象获取以下信息:
  getUrl();   //返回与这个数据库的连结的URL,当然是已知的,要不你怎么连上去
  getUserName(); //返回与这个数据库的连结的用户,同上
  isReadOnly();数据库是否为只读
  getDatabaseProdUCeName();//数据库产品名称
  getDatabaseProduceVersion();//版本号
  getDriverName();//驱动程序
  getDriverVersion();//驱动程序版本
  
  以上内容没有什么意义
  
  ResultSet getTables(String catalog,
  String schemaPattern,
  String tableNamePattern,
  String[] types)
  可以得到该库中\"表\"的所有情况,这里的表包括表,视图,系统表,临时空间,别名,同义词对于各参数:
  String catalog,表的目录,可能为null,\"null\"匹配所有
  String schemaPattern,表的大纲,同上
  String tableNamePattern,表名,同上
  String[] types,表的类型,\"null\"匹配所有,可用的类型为:
  TABLE,VIEW,SYSEM TABLE,GLOBAL TEMPORARY,LOCAL TEMPORARY,ALIAS,SYNONYM
  
  例如:
  DatabaseMetaData dbmd = conn.getMetaData();
  ResultSet rs = dbmd.getTables(null,null,null,null);
  ResultSetMetaData rsmd = rs.getMetaData();
  int j = rsmd.getColumnCount();
  for(int i=1;i<=j;i++){
  out.print(rsmd.getColumnLabel(i)+\"\\t\");
  }
  out.println();
  while(rs.next()){
  for(int i=1;i<=j;i++){
  out.print(rs.getString(i)+\"\\t\");
  }
  out.println();
  }
  对于更具体的表中的列的信息,可以用dbmd(不是rsmd).getColumns(
  String catalog,
  String schemaPattern,
  String tableNamePattern,
  String columnNamePattern
  )
  不仅可以获得rsmd中的信息,还可以获得列的大小,小数位数,精度,缺省值,列在表中的位置等相关信息.
  
  还有两个方法,调用和获取表信息一样,可以获得存储过程和索引的信息:
  ResultSet getProcedures(
  String catalog,
  String schemaPattern,
  String procedurePattern
  );
  ResultSet getIndexINFO(
  String catalog,
  String schemaPattern,
  String table,
  boolean unique,boolean approximate
  );
上一篇:新手上路:JDBC初级应用实例(一) 人气:1238
下一篇:基于JDBC的数据库连接池高效管理策略 人气:1100
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐