1、什么数据库元信息
指数据库、表等的定义信息
2、元信息:
数据库的元信息:DatabaseMetaData dmd = conn.getMetaData();//数据库的元信息。全部都是getter方法
指数据库、表等的定义信息
2、元信息:
数据库的元信息:DatabaseMetaData dmd = conn.getMetaData();//数据库的元信息。全部都是getter方法
参数元信息:执行的SQL语句中的占位符元信息
编写测试类
(利用了之前编写的DBCP的工具类DBCPUtil 参考:http://blog.csdn.net/jyjxs/article/details/25838973)
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.util.UUID;
import com.itheima.utils.DBCPUtil;
import com.itheima.utils.JdbcUtils;
public class Test {
public static void main(String[] args) throws SQLException {
/**
* 获取数据库及驱动连接信息
*/
Connection conn = DBCPUtil.getConnection();
//获取元数据
DatabaseMetaData dmt = conn.getMetaData();
//一下可以获取一些驱动和数据库信息
System.out.println(dmt.getDriverName()); //MySQL-AB JDBC Driver
System.out.println(dmt.getDriverVersion()); //mysql-connector-java-5.0.8 ( Revision: ${svn.Revision} )
System.out.println(dmt.getDatabaseProductName()); //MySQL
System.out.println(dmt.getDatabaseProductVersion()); //5.5.37
/**
* 获取预编译的SQL元信息
*/
PreparedStatement prep = conn.prepareStatement("select * from ccc where id=? and name =?");
ParameterMetaData pmd = prep.getParameterMetaData();
System.out.println(pmd.getParameterCount()); //获取参数的个数:2
/**
* 获取结果集的元信息
*/
PreparedStatement prep1 = conn.prepareStatement("select * from ccc");
ResultSet rs = prep1.executeQuery();
ResultSetMetaData rsm = rs.getMetaData(); //获取结果的集的元数据
System.out.println(rsm.getColumnCount()); //获取结果集的
System.out.println(rsm.getColumnLabel(1)); //获取第一列的列名
System.out.println(rsm.getColumnTypeName(1)); //获取第一个字段的属性
}