DataBaseMeataData--元数据

来源:互联网 发布:什么值得买app源码 编辑:程序博客网 时间:2024/06/18 16:43

         一、定义

元数据:数据库,表,列的定义信息。

Connection.getMetaData()

1.DataBaseMetaData对象:数据库元数据

相关方法:

a.  getURL()

b.  getUserName()

c.  getDriverName()

<span style="white-space:pre"></span>Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;ComboPooledDataSource source = new ComboPooledDataSource();try{conn = source.getConnection();//--获取当前数据库的元数据DatabaseMetaData metaData = conn.getMetaData();//----获取数据库连接时使用的URLString url = metaData.getURL();System.out.println(url);//----获取数据库的用户名String username = metaData.getUserName();System.out.println(username);//----获取驱动的名称String driverName = metaData.getDriverName();System.out.println(driverName);//----获取数据库中指定表的主键信息rs = metaData.getPrimaryKeys(null, null, "account");while(rs.next()){short cseq = rs.getShort("KEY_SEQ");String cname = rs.getString("COLUMN_NAME");System.out.println(cseq+":"+cname);}//----获取表rs = metaData.getTables(null, null, "%", new String[]{"TABLE"});while(rs.next()){String tabName = rs.getString("TABLE_NAME");System.out.println(tabName);}}catch (Exception e) {e.printStackTrace();}finally{DbUtils.closeQuietly(conn, ps, rs);}

2.ParameterMetaData     参数元数据

<span style="white-space:pre"></span>conn = source.getConnection();ps = conn.prepareStatement("select * from account where name=? and money=?");//--获取参数元数据ParameterMetaData metaData = ps.getParameterMetaData();//----参数的个数int count = metaData.getParameterCount();System.out.println(count);

3.ResultSetMetaData      结果集元数据

<span style="white-space:pre"></span>conn = source.getConnection();ps = conn.prepareStatement("select * from account");rs = ps.executeQuery();//--获取结果集元数据ResultSetMetaData metaData = rs.getMetaData();//----获取结果集中的列数int cc = metaData.getColumnCount();System.out.println(cc);//----获取结果集中指定列的名称String cn = metaData.getColumnName(2);System.out.println(cn);//----获取结果集中指定列的类型的名称String ct = metaData.getColumnTypeName(3);System.out.println(ct);
4.结果集Demo  

<span style="white-space:pre"></span>Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;ComboPooledDataSource source = new ComboPooledDataSource();try{conn = source.getConnection();ps = conn.prepareStatement("select * from account");rs = ps.executeQuery();//--获取结果集元数据ResultSetMetaData metaData = rs.getMetaData();//----获取结果集中的列数int cc = metaData.getColumnCount();System.out.println("-------------------------------------------------------");for(int i = 1;i<=cc;i++){String column_name = metaData.getColumnName(i);String column_type = metaData.getColumnTypeName(i);System.out.print(column_name+":"+column_type+"\t\t");}System.out.println();System.out.println("-------------------------------------------------------");while(rs.next()){for(int i =1 ;i<=cc;i++){Object obj = rs.getObject(i);System.out.print(obj+"\t\t\t");}System.out.println();}System.out.println("-------------------------------------------------------");}catch (Exception e) {e.printStackTrace();}finally{DbUtils.closeQuietly(conn, ps, rs);}


0 0
原创粉丝点击