[JDBC技术]2.JDBC基本使用步骤(下)

结果集元数据

java.sql 包中有两个元数据( MetaData )接口:
DatabaseMetaData
这个接口用来获取关于数据库的信息,如:数据库中所有表格的列表、系统函数、关键字、数据库产品名、数据库支持的 JDBC 驱动器名等。
 
ResultSetMetaData
该接口用来获取关于存储在 ResultSet 对象中列的信息,如:每一列的数据类型、列标题及属性等。
其常用方法:
public int getColumnCount(); 返回存储在 ResultSet 对象中列的数目。
public String getColumnName(int column_number); 返回指定第 column_number 列的列名。
public String getColumnTypeName(int column_number); 返回特定数据库指定第 column_number 列的数据类型。
通过调用 ResultSet 类的 getMetaData() 方法得到关于该结果集的元数据对象: ResultSetMetaData
例:
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.ResultSetMetaData;
public class JDBC_01
{
  public static void main(String[] args)    
  {
    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;
    try
    {
      //加载SQL Server的驱动,在这里是固定的格式 
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      //获取SQLServer的数据库连接
      String url = "jdbc:microsoft:sqlserver://192.168.0.253:1433;databaseName = j2ee";
      //填写数据库的用户名和密码
      String user = "user";
      String password = "user"; 
      //连接数据库
      con = DriverManager.getConnection(url,user,password);
      //connect的对象创建Statement允许执行SQL语句
      stmt = con.createStatement();
      //一条SQL语句
      String sql = "select * from contact where fname = '米亚斯多德'";
      //执行SQL查询语句,这里查询返回的值给字符串rs,要返回值的SQL语句要用到
      //的方法是executeQuery(SQLstatement)
      rs = stmt.executeQuery(sql);
      //若rs的记录已是记录末,则说明数据库中没有刚才查询的这条记录,则插入之,若
      //有这条记录,则显示记录值.
      if(!rs.next())
      {
        sql = "insert contact(fname,password) values('米亚斯多德','1')";
        //插入记录不返回值,要用方法executeUpdate(SQLstatement)
        stmt.executeUpdate(sql);
      }
      else
      {
        //rs的getString(1)返回第一个字段所对应的字符串,以此类推
        System.out.println(rs.getString(1));
        System.out.println(rs.getString(2));
        sql = "select * from contact";
        rs = stmt.executeQuery(sql);
        //查询已不是在记录末
        while(rs.next())
        {
          System.out.println(rs.getString(1));
        }
        //得到rs的结果集数据元对象
        ResultSetMetaData rsmd = rs.getMetaData();
        //得到字段(列)的数目
        int colCount = rsmd.getColumnCount();
        System.out.println("ColumnCount:" + colCount);
        //得到并显示出字段名和数据类型
        for(int i = 1;i <= colCount;i++)
        {
          String colName = rsmd.getColumnName(i);
          String typeName = rsmd.getColumnTypeName(i);
          System.out.println(colName + "\t" + typeName);
        }
      }        
    }
    catch(Exception e)
    {
      System.out.println("Error:" + e);
    }
    finally
    {
      try
      {
        //注意关闭建立的数据元对象,连接对象,返回的结果数据对象
        stmt.close();
        con.close();
        rs.close();
      } 
      catch(Exception e)
      {
        System.out.println("Error:" + e);
      }
    }
  }
}

本文出自 “wnight88” 博客,转载请与作者联系!

你可能感兴趣的:(jdbc,职场,休闲)