初学JDBC__第七节(DatabaseMetaData和ParameterMetaData)

时间:2022-10-25 18:48:20
DatabaseMetaData meta = connection.getMetaData();通过DatabaseMetaData可以获得数据库相关的信息如:数据库版本、数据库名、数据库厂商信息、是否支持事务、是否支持某种事务隔离级别,是否支持滚动结果集等。 ParameterMetaData pmd = preparedStatement.getParameterMetaData();通过 ParameterMetaData可以获得参数信息下面通过例子测试ParameterMetaData
public class ParameterMateTest {

/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
Object[] para=new Object[]{100,"name13",1000};
read("select * from T_Users where id<? and name=? and money<?",para);
}
static void read(String sql,Object[] parame) throws SQLException{
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
conn=jdbcUtils.getConnection();
ps=conn.prepareStatement(sql);
ParameterMetaData pmd=ps.getParameterMetaData();
int count=pmd.getParameterCount();//获得参数的数量
for(int i=1;i<=count;i++){
System.out.println(pmd.getParameterClassName(1));//参数CLASS名字
System.out.println(pmd.getParameterType(i));//参数类型
System.out.println(pmd.getParameterTypeName(i));//参数类型名字
ps.setObject(i, parame[i-1]);//给参数赋值(parame里面的值要和sql里面的占位符一一对应)
}
rs=ps.executeQuery();
while(rs.next()){
System.out.println(rs.getObject("name")+" "+rs.getObject("money"));
}

}
finally{
jdbcUtils.free(conn, ps, rs);
}
}
}