首页 > 代码库 > 元数据

元数据

 

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

 

public class App {    //1. 数据库元数据    @Test    public void testDB() throws Exception {        // 获取连接        Connection conn = JdbcUtil.getConnection();        // 获取数据库元数据        DatabaseMetaData metaData = http://www.mamicode.com/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 =http://www.mamicode.com/ 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 =http://www.mamicode.com/ rs.getObject(columnName);                // 测试                System.out.print(columnName + "=" + columnValue + ",");            }            System.out.println();        }            }            }

 

元数据