zoukankan      html  css  js  c++  java
  • jdbc元数据

    l  在jdbc中获取数据库的定义,例如:数据库、表、列的定义信息。就用到元数据。

    l  在jdbc中可以使用: 数据库元数据、参数元数据、结果集元数据

    l  (元数据定义相关api,  ..MetaData)


    package com.loaderman.demo.b_metadata;
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.ParameterMetaData;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    
    import com.loaderman.demo.utils.JdbcUtil;
    import org.junit.Test;
    
    
    public class App {
    
        //1. 数据库元数据
        @Test
        public void testDB() throws Exception {
            // 获取连接
            Connection conn = JdbcUtil.getConnection();
            // 获取数据库元数据
            DatabaseMetaData metaData = conn.getMetaData();// alt + shift + L  快速获取方法返回值
    
            System.out.println(metaData.getUserName());
            System.out.println(metaData.getURL());
            System.out.println(metaData.getDatabaseProductName());
        }
    
        //2. 参数元数据
        @Test
        public void testParams() throws Exception {
            // 获取连接
            Connection conn = JdbcUtil.getConnection();
            // SQL
            String sql = "select * from dept where deptid=? and deptName=?";
            // Object[] values = {"tom","888"};
    
            PreparedStatement pstmt = conn.prepareStatement(sql);
            // 参数元数据
            ParameterMetaData p_metaDate = pstmt.getParameterMetaData();
            // 获取参数的个数
            int count = p_metaDate.getParameterCount();
    
    
            // 测试
            System.out.println(count);
        }
    
        // 3. 结果集元数据
        @Test
        public void testRs() throws Exception {
            String sql = "select * from dept ";
    
            // 获取连接
            Connection conn = JdbcUtil.getConnection();
            PreparedStatement pstmt = conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
            // 得到结果集元数据(目标:通过结果集元数据,得到列的名称)
            ResultSetMetaData rs_metaData = rs.getMetaData();
    
            // 迭代每一行结果
            while (rs.next()) {
                // 1. 获取列的个数
                int count = rs_metaData.getColumnCount();
                // 2. 遍历,获取每一列的列的名称
                for (int i=0; i<count; i++) {
                    // 得到列的名称
                    String columnName = rs_metaData.getColumnName(i + 1);
                    // 获取每一行的每一列的值
                    Object columnValue = rs.getObject(columnName);
                    // 测试
                    System.out.print(columnName + "=" + columnValue + ",");
                }
                System.out.println();
            }
    
        }
    }
  • 相关阅读:
    ubuntu set/unset proxy
    Caffe Ubuntu14.04 64位 的最快安装 (cuda7.5 + cudnn7.0 2016最新)
    OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置
    Hadoop学习第一天
    PDF在xp或2003下正常在win7下乱码的问题
    android入门到熟练(五)---广播
    android入门到熟练(三)----UI界面
    android入门到熟练(二)----活动
    android入门到熟练(一)
    jQuery慢慢啃之回调(十三)
  • 原文地址:https://www.cnblogs.com/loaderman/p/10008647.html
Copyright © 2011-2022 走看看