package com.rlovep.metadata; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ParameterMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.junit.Test; import com.mysql.jdbc.ResultSetMetaData; import com.rlovep.jdbc.JdbcUtil; /** * * @ClassName: Demo * @Description: 获取元数据,接着获得信息 * @author peace w_peace@163.com * @date 14 Nov 2015 9:02:09 pm * */ public class Demo { @Test /** * * @Title: testMeaDat * @Description: 获取数据库的信息 * @return:void * @throws * @author peace w_peace@163.com */ public void testMeaDat(){ Connection connection=JdbcUtil.getConnection(); try { DatabaseMetaData metaData = connection.getMetaData(); System.out.println(metaData.getDriverName()); System.out.println(metaData.getURL()); System.out.println(metaData.getUserName()); System.out.println(metaData.getDatabaseProductName()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test /** * * @Title: testParams * @Description: 参数元数据 * @return:void * @throws * @author peace w_peace@163.com */ public void testParams(){ Connection connection=JdbcUtil.getConnection(); String sql="select * from dept where id=?"; PreparedStatement statement=null; try { statement=connection.prepareStatement(sql); statement.setInt(1, 2); ParameterMetaData parameterMetaData = statement.getParameterMetaData(); System.out.println("参数个数"+parameterMetaData.getParameterCount()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JdbcUtil.close(connection, statement); } } @Test /** * * @Title: testRs * @Description: 结果集元数据 * @return:void * @throws * @author peace w_peace@163.com */ public void testRs(){ Connection connection=JdbcUtil.getConnection(); String sql="select * from dept"; PreparedStatement statement=null; ResultSet rs=null; try { statement=connection.prepareStatement(sql); rs=statement.executeQuery(); // 得到结果集元数据(目标:通过结果集元数据,得到列的名称) java.sql.ResultSetMetaData metaData = rs.getMetaData(); while(rs.next()) { //获取列的个数 int count=metaData.getColumnCount(); for(int i=0;i<count;i++){ //列名获得 String name=metaData.getColumnName(i+1); //通过列名获得价值 Object object = rs.getObject(name); //输出价值 System.out.println(name+object); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { JdbcUtil.close(connection, statement, rs); } } }