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();
}
}
以上在用框架是用的比较多;