元数据

Posted 微风星语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元数据相关的知识,希望对你有一定的参考价值。

 

在jdbc中获取数据库的定义,例如:数据库、表、列的定义信息。就用到元数据。
在jdbc中可以使用: 数据库元数据、参数元数据、结果集元数据
(元数据定义相关api,  ..MetaData)

 

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();
        }
        
    }
    
    
    
}

 

以上是关于元数据的主要内容,如果未能解决你的问题,请参考以下文章

Python:用于元组的 Pandas DataFrame

Cpp:将字符串片段解析为元组

Shader2.0的顶点着色器和片段着色器

超级有用的9个PHP代码片段

了解 BitTorrent 片段输出

[新增ST-001片段]全程字幕-20套UML+Enterprise Architect建模示范视频