您的位置:首页 > 编程语言

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

2012-03-19 09:55 113 查看
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();

}

}

以上在用框架是用的比较多;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: