MySql的初学习 -- 第十六章 -- 批处理
博客说明
文章内容输出来源:拉勾教育Java就业急训营
什么是元数据
除了表之外的数据都是元数据,可以分为三类
- 查询结果信息: UPDATE 或 DELETE语句 受影响的记录数。
- 数据库和数据表的信息: 包含了数据库及数据表的结构信息。
- MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。
元数据相关的命令介绍
– 1.查看服务器当前状态
SHOW STATUS;
– 2.查看MySQl的版本信息
SELECT VERSION();
– 3.查询表中的详细信息
SHOW COLUMNS FROM 表名;
– 4.显示数据表的详细索引信息
SHOW INDEX FROM 表名;
– 5.列出所有数据库
SHOW DATABASES;
– 6.显示当前数据库的所有表
SHOW TABLES;
– 7.获取当前的数据库名
SELECT DATABASE();
使用JDBC查看元数据
元数据类 | 作用 |
---|---|
DatabaseMetaData | 描述数据库的元数据对象 |
ResultSetMetaData | 描述结果集的元数据对象 |
获取元数据对象的方法 : getMetaData ()
- connection 连接对象, 调用 getMetaData () 方法,获取的是DatabaseMetaData 数据库元数据对象
- PrepareStatement 预处理对象调用 getMetaData () , 获取的是ResultSetMetaData , 结果集元数据对象
DatabaseMetaData的常用方法
方法 | 描述 |
---|---|
getURL() | 获取数据库的URL |
getUserName() | 获取当前数据库的用户名 |
getDatabaseProductName() | 获取数据库的产品名称 |
getDatabaseProductVersion() | 获取数据的版本号 |
getDriverName() | 返回驱动程序的名称 |
/**
* 获取数据库相关的数据信息,使用DatabaseMetaData
*/
@Test
public void testDataBaseMetaData() throws SQLException {
//1.获取连接
Connection con = DruidUtils.gerConnection();
//2.获取代表数据库的元数据对象 DatabaseMetaData
DatabaseMetaData metaData = con.getMetaData();
//3.获取数据库相关的元数据信息
//获取Url
String url = metaData.getURL();
System.out.println("数据库的Url:" + url);
//获取当前用户
String userName = metaData.getUserName();
System.out.println("数据库的当前用户:" + userName);
//获取数据库产品名称
String databaseProductName = metaData.getDatabaseProductName();
System.out.println("数据库的产品名称:" + databaseProductName);
//获取数据库版本号
String databaseProductVersion = metaData.getDatabaseProductVersion();
System.out.println("数据库的版本号:" + databaseProductVersion);
//获取数据库驱动程序名称
String driverName = metaData.getDriverName();
System.out.println("数据库的驱动程序名称:" + driverName);
//判断当前数据库是否允许只读
boolean readOnly = metaData.isReadOnly();//如果为true,只允许只读
System.out.println(readOnly);
//4.关闭连接
con.close();
}
ResultSetMetaData的常用方法
方法 | 描述 |
---|---|
getColumnCount() | 当前结果集共有多少列 |
getColumnName(int i) | 获取指定列号的列名, 参数是整数 从1开始 |
getColumnTypeName(int i) | 获取指定列号列的类型, 参数是整数 从1开始 |
/**
* 获取结果集相关的数据信息,使用ResultSetMetaData
* @throws SQLException
*/
@Test
public void testResultSetMetaData() throws SQLException {
//1.获取连接
Connection con = DruidUtils.gerConnection();
//2.获取预处理对象
PreparedStatement ps = con.prepareStatement("select * from employee");
ResultSet resultSet = ps.executeQuery();
//3.获取结果集元素对象
ResultSetMetaData metaData = ps.getMetaData();
//获取结果集共有多少列
int columnCount = metaData.getColumnCount();
System.out.println("结果集共有" + columnCount + "列");
for (int i = 1; i <= columnCount; i++) {
//获取指定列号的列名
String catalogName = metaData.getColumnName(i);
System.out.println("列名为:" + catalogName);
//获取指定列号的类型
String columnTypeName = metaData.getColumnTypeName(i);
System.out.println("类型为:" + columnTypeName);
System.out.println();
}
//4.释放资源
DruidUtils.CloseDBCP(con, ps, resultSet);
}