元数据

本文介绍了数据库元数据的概念及其三种主要形式:数据库元数据、参数元数据和结果集元数据,并提供了具体的实现示例。
元数据(metaData): 指数据库中库,表,列 的定义信息

1>DataBaseMetaData 数据库元数据



         Connection conn= JdbcUtils.getConnection();

        DatabaseMetaData dmd=conn.getMetaData();

        String driverName=dmd.getDriverName(); //获取驱动名称
        System.out.println(driverName);

        String userName=dmd.getUserName();//获取用户名
        System.out.println(userName);

        String url=dmd.getURL();//获取url

        System.out.println(url);

        String databaseProductName=dmd.getDatabaseProductName();/获取数据库名称

        System.out.println(databaseProductName);

        String databaseProductVersion=dmd.getDatabaseProductVersion();//获取数据库版本
        System.out.println(databaseProductVersion);

2> ParameterMetaData 参数元数据

        主要用户获取sql语句中占位符的相关信息

        public static void main(String[]args) throws Exception{
            Connection conn= JdbcUtils.getConnection();
            String sql="select * from account where id=? and name=?";

        PreparedStatement pst=conn.prepareStatement(sql);

        ParameterMetaData pmd=pst.getParameterMetaData();

        int count=pmd.getParameterCount();
        System.out.println(count);

         String type=pmd.getParameterTypeName(1);
         System.out.println(type);

        }

##### 注意:在获取参数类型时会产生异常

 java.sql.SQLException: parameter metadata not available for the given statement

  解决方案:在url后面添加参数

  url=jdbc:mysql:///javastudy?generateSimpleParameterMetadata=true

  添加参数后,获取的结果也是varchar,原因是mysql驱动的支持问题。

3> ResultSetMetaData 结果集元数据

 public static void main(String[] args) throws Exception {
            Connection conn= JdbcUtils.getConnection();

        ResultSet rs=conn.createStatement().executeQuery("select * from account");

        //得到结果集元数据

        ResultSetMetaData rsmd=rs.getMetaData();

        System.out.println(rsmd.getColumnCount()); //获取结果集列数量

        System.out.println(rsmd.getColumnName(2)); //获取结果集中指定列的名称

        System.out.println(rsmd.getColumnTypeName(1));//获取结果集中指定列的类型

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值