package com.itheima.test; 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 java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.itheima.utils.C3P0Util; /** * 元数据: * 数据库元数据 * 参数元数据 * 结果集元数据 * @author wangli * */ public class MetaDataTest { @Test //数据库元数据 public void testDataBase(){ Connection con = null; Statement st = null; try { con = C3P0Util.getConneciton(); //获取数据库元数据 DatabaseMetaData dmd = con.getMetaData(); //元数据中包含的数据库名,数据库版本信息 String productName = dmd.getDatabaseProductName();//元数据中包含的数据库名 String version = dmd.getDatabaseProductVersion();//得到版本 System.out.println(productName+","+version); } catch (SQLException e) { e.printStackTrace(); }finally{ C3P0Util.release(null, st, con); } } @Test //数据库元数据 public void testParameterMetaData(){ Connection con = null; PreparedStatement st = null; try { con = C3P0Util.getConneciton(); st = con.prepareStatement("insert into account values(?,?,?)"); //st = con.prepareStatement("?????"); ParameterMetaData pmd = st.getParameterMetaData();//用于获取参数元数据对象 //获取元数据 : 参数个数 int count = pmd.getParameterCount(); System.out.println(count+""); } catch (SQLException e) { e.printStackTrace(); }finally{ C3P0Util.release(null, st, con); } } @Test //结果集元数据 public void testResultSetMetaData(){ Connection con = null; PreparedStatement st = null; ResultSet rs = null; try { con = C3P0Util.getConneciton(); st = con.prepareStatement("select * from account"); rs = st.executeQuery(); //取出结果集元数据对象 ResultSetMetaData rsmd = rs.getMetaData(); //得到列数 int count = rsmd.getColumnCount();//得到了列数 for (int i = 1; i <=count; i++) { //得到每列列名 String columnName= rsmd.getColumnName(i); //得到列的类型 String columnType = rsmd.getColumnTypeName(i); System.out.println(columnName+":"+columnType); } } catch (SQLException e) { e.printStackTrace(); }finally{ C3P0Util.release(rs, st, con); } } }
时间: 2024-12-16 15:12:42