22---数库编程13(元数据)

来源:互联网 发布:如何绑定ip地址和mac 编辑:程序博客网 时间:2024/06/05 21:17
 

1、DataBaseMetaData:
 使用元数据可以分心数据库的基本信息,包括版本,数据库的名称等等,或者得到指定表的主键;
  /*---创建数据库表
   drop table user;
   create table user(
    id   int   auto_increment primary key,
    name  varchar(30) not null,
    password varchar(32) not null,
    age   int   not null,
    sex   varchar(2) default '男',
    birthday Date
   );
   */

   import java.sql.DriverManager;
   import java.sql.Connection;
   import java.sql.SQLException;
   import java.sql.DatabaseMetaData;
   import java.sql.ResultSet;

   public class Demo{
    //定义数据库的驱动程序
    public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
    //定义数据库的连接地址:
    public static final String DBURL="jdbc:mysql://localhost:3306/lid";
    //定义数据库的用户名
    public static final String DBUSER="root";
    //定义数据库的密码
    public static final String DBPASSWORD="123";
    public static void main(String args[]) throws Exception{
     Connection conn=null;
     DatabaseMetaData dmd=null;//数据库元数据
     ResultSet rs=null;
     Class.forName(DBDRIVER);
     conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
     dmd=conn.getMetaData();
     System.out.println("数据库的名称:"+dmd.getDatabaseProductName());
     System.out.println("数据库版本:"+dmd.getDatabaseMajorVersion()+
       "."+dmd.getDatabaseMinorVersion());
     //取得数据表的主键,因为主键有多个所以用ResultSet结果集接受
     rs=dmd.getPrimaryKeys(null,null,"user");
     while(rs.next()){
      System.out.println("表类别:"+rs.getString(1));
      System.out.println("表模式:"+rs.getString(2));
      System.out.println("表名称:"+rs.getString(3));
      System.out.println("列名称:"+rs.getString(4));
      System.out.println("主键序列号:"+rs.getString(5));
      System.out.println("主键名称:"+rs.getString(6));
      }
     
     conn.close();
     }
    }

2、ResultSetMetaData
 使用ResultSetMetaData可以获取关于ResultSet对象中列的类型和属性的信息的对象,ResultSetMetaData
 存储了ResultSet的MetaData,可以通过以下方法获得ResultSet的信息;
   /*---创建数据库表
    drop table user;
    create table user(
     id   int   auto_increment primary key,
     name  varchar(30) not null,
     password varchar(32) not null,
     age   int   not null,
     sex   varchar(2) default '男',
     birthday Date
    );
    */

    import java.sql.DriverManager;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.ResultSetMetaData;
    import java.sql.PreparedStatement;

    public class Demo{
     //定义数据库的驱动程序
     public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
     //定义数据库的连接地址:
     public static final String DBURL="jdbc:mysql://localhost:3306/lid";
     //定义数据库的用户名
     public static final String DBUSER="root";
     //定义数据库的密码
     public static final String DBPASSWORD="123";
     public static void main(String args[]) throws Exception{
      Connection conn=null;
      ResultSetMetaData rsmd=null;//数据库元数据
      PreparedStatement psmt;
      Class.forName(DBDRIVER);
      conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
      String sql="select id,name,password,age,sex,birthday from user";
      psmt=conn.prepareStatement(sql);
      rsmd=psmt.getMetaData();
      System.out.println("一共"+rsmd.getColumnCount()+"列");
      if(rsmd.isAutoIncrement(1)){
       System.out.println(rsmd.getColumnName(1));//列是自动增长的
       }
      conn.close();
      }
     }
  以上在用框架是用的比较多;   

原创粉丝点击