By
yusijia
October 04 2016
Updated:October 04 2016
转:http://www.cnblogs.com/xdp-gacl/p/4006830.html
一、元数据介绍 元数据指的是”数据库”、”表”、”列”的定义信息。
Connection.getDatabaseMetaData()获得代表DatabaseMetaData元数据的DatabaseMetaData对象。 DataBaseMetaData对象的常用方法: • getURL():返回一个String类对象,代表数据库的URL。 • getUserName():返回连接当前数据库管理系统的用户名。 • getDatabaseProductName():返回数据库的产品名称。 • getDatabaseProductVersion():返回数据库的版本号。 • getDriverName():返回驱动驱动程序的名称。 • getDriverVersion():返回驱动程序的版本号。 • isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 * @Method : testDataBaseMetaData * @Description : 获取数据库的元信息 * @throws SQLException */ @Test public void testDataBaseMetaData () throws SQLException { Connection conn = JdbcUtils.getConnection(); DatabaseMetaData metadata = conn.getMetaData(); System.out.println(metadata.getURL()); System.out.println(metadata.getUserName()); System.out.println(metadata.getDatabaseProductName()); System.out.println(metadata.getDatabaseProductVersion()); System.out.println(metadata.getDriverName()); System.out.println(metadata.getDriverVersion()); System.out.println(metadata.isReadOnly()); JdbcUtils.release(conn, null , null ); }
PreparedStatement.getParameterMetaData() 获得代表PreparedStatement元数据的ParameterMetaData对象。 Select * from user where name=? And password=? ParameterMetaData对象的常用方法: • getParameterCount(): 获得指定参数的个数 • getParameterType(int param):获得指定参数的sql类型,MySQL数据库驱动不支持
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 * @Method : testParameterMetaData * @Description : 获取参数元信息 * @throws SQLException */ @Test public void testParameterMetaData () throws SQLException { Connection conn = JdbcUtils.getConnection(); String sql = "select * from user wherer name=? and password=?" ; PreparedStatement st = conn.prepareStatement(sql); ParameterMetaData pm = st.getParameterMetaData(); System.out.println(pm.getParameterCount()); System.out.println(pm.getParameterType(1 )); JdbcUtils.release(conn, null , null ); }
ResultSet. getMetaData() 获得代表ResultSet对象元数据的ResultSetMetaData对象。 ResultSetMetaData对象的常用方法: • getColumnCount() 返回resultset对象的列数 • getColumnName(int column) 获得指定列的名称 • getColumnTypeName(int column)获得指定列的类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 * @Method : testResultSetMetaData * @Description : 结果集的元数据 * @throws Exception */ @Test public void testResultSetMetaData () throws Exception { Connection conn = JdbcUtils.getConnection(); String sql = "select * from account" ; PreparedStatement st = conn.prepareStatement(sql); ResultSet rs = st.executeQuery(); ResultSetMetaData metadata = rs.getMetaData(); System.out.println(metadata.getColumnCount()); System.out.println(metadata.getColumnName(1 )); System.out.println(metadata.getColumnTypeName(1 )); JdbcUtils.release(conn, st, rs); }