1.数据库中的元数据
(1) 什么是数据元数据?
元数据(MetaData),是指定义数据结构的数据。那么数据库元数据就是指定义数据库各类对象结构的数据。 例如数据库中的数据库名,表明, 列名、用户名、版本名以及从SQL语句得到的结果中的大部分字符串是元数据
(2)数据库元数据的作用
在应用设计时能够充分地利用数据库元数据
深入理解了数据库组织结构,再去理解数据访问相关框架的实现原理会更加容易。
(3)如何获取元数据
在我们前面使用JDBC来处理数据库的接口主要有三个,即Connection,PreparedStatement和ResultSet这三个,而对于这三个接口,还可以获取不同类型的元数据,通过这些元数据类获得一些数据库的信息。下面将对这三种类型的元数据对象进行各自的介绍并通过使用MYSQL数据库进行案例说明
2 数据库元数据
2.1 概述
数据库元数据(DatabaseMetaData):是由Connection对象通过getMetaData方法获取而来,主要封装了是对数据库本身的一些整体综合信息,例如数据库的产品名称,数据库的版本号,数据库的URL,是否支持事务等等。
以下有一些关于DatabaseMetaData的常用方法:
getDatabaseProductName:获取数据库的产品名称
getDatabaseProductName:获取数据库的版本号
getUserName:获取数据库的用户名
getURL:获取数据库连接的URL
getDriverName:获取数据库的驱动名称
driverVersion:获取数据库的驱动版本号
isReadOnly:查看数据库是否只允许读操作
supportsTransactions:查看数据库是否支持事务
代码示例:
基础类:MetaDataBase
package com.shunli.autocodeutils.metadate;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
/**
* @author shunli
* @描述:
* @create 2020/2/16
* @since 1.0.0
*/
public class MetaDataBase {
private static String userName = "root";
private static String password = "root";
private String tableName = "";
//这里用的的是mysql-connector-java-8.0.19版本,所以driver和url跟老版本不同
private static String driver = "com.mysql.cj.jdbc.Driver";
private static String url = "jdbc:mysql://127.0.0.1:3306/[tableName]?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";
public MetaDataBase() {
url = url.replace("[tableName]", tableName);
}
public MetaDataBase(String tableName) {
this.tableName = tableName;
url = url.replace("[tableName]", tableName);
}
/**
* 获取连接
* @return
* @throws Exception
*/
public Connection getConnection() throws Exception {
//获取数据库的备注信息
Properties properties = new Properties();
//设置连接属性,使得可获取到表的REMARK(备注)
properties.put("remarksReporting","true");
properties.put("user",userName);
properties.put("password",password);
//注册驱动
Class.forName(driver)