获取数据库相关信息
2018-02-01 14:30
387 查看
为了搞明白orm框架的映射原理,自己尝试制作轮子,发现不了解的细节问题真的是太多太多了。下面是获取数据库相关信息的方法。
System.out.println("DatabaseProductName:" + connection.getMetaData().getDatabaseProductName());
System.out.println("DatabaseProductVersion:" + connection.getMetaData().getDatabaseProductVersion());
System.out.println("DriverName:" + connection.getMetaData().getDriverName());
System.out.println("DriverVersion:" + connection.getMetaData().getDriverVersion());
System.out.println("DatabaseMajorVersion:" + connection.getMetaData().getDatabaseMajorVersion());
System.out.println("MinorVersion:" + connection.getMetaData().getDatabaseMinorVersion());
System.out.println("connection catalog is: " + connection.getCatalog());
System.out.println("connection Schema is: " + connection.getSchema());
if("MySQL".equals(connection.getMetaData().getDatabaseProductName())) {
System.out.println("========================表信息===================================");
ResultSet tableResultSet = connection.getMetaData().getTables(null, null, "show_novel_user", new String[]{});
while(tableResultSet.next()) {
ResultSetMetaData resultSetMetaData = tableResultSet.getMetaData();
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
System.out.println("ColumnName :" + resultSetMetaData.getColumnName(i+1) + ",ColumnTypeName:" + resultSetMetaData.getColumnTypeName(i+1) + ",value:" + tableResultSet.getObject(resultSetMetaData.getColumnName(i+1)));
}
}
System.out.println("=========================字段信息==================================");
ResultSet columnResultSet = connection.getMetaData().getColumns(null, null, "show_novel_user", "user_id");
while(columnResultSet.next()) {
ResultSetMetaData resultSetMetaData = columnResultSet.getMetaData();
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
System.out.println("ColumnName :" + resultSetMetaData.getColumnName(i+1) + ",ColumnTypeName:" + resultSetMetaData.getColumnTypeName(i+1) + ",value:" + columnResultSet.getObject(resultSetMetaData.getColumnName(i+1)));
}
}
System.out.println("=========================主键信息==================================");
ResultSet primaryKeyResultSet = connection.getMetaData().getPrimaryKeys(null, null, "show_novel_user");
while(primaryKeyResultSet.next()) {
ResultSetMetaData resultSetMetaData = primaryKeyResultSet.getMetaData();
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
System.out.println("ColumnName :" + resultSetMetaData.getColumnName(i+1) + ",ColumnTypeName:" + resultSetMetaData.getColumnTypeName(i+1) + ",value:" + primaryKeyResultSet.getObject(resultSetMetaData.getColumnName(i+1)));
}
}
}
System.out.println("DatabaseProductName:" + connection.getMetaData().getDatabaseProductName());
System.out.println("DatabaseProductVersion:" + connection.getMetaData().getDatabaseProductVersion());
System.out.println("DriverName:" + connection.getMetaData().getDriverName());
System.out.println("DriverVersion:" + connection.getMetaData().getDriverVersion());
System.out.println("DatabaseMajorVersion:" + connection.getMetaData().getDatabaseMajorVersion());
System.out.println("MinorVersion:" + connection.getMetaData().getDatabaseMinorVersion());
System.out.println("connection catalog is: " + connection.getCatalog());
System.out.println("connection Schema is: " + connection.getSchema());
if("MySQL".equals(connection.getMetaData().getDatabaseProductName())) {
System.out.println("========================表信息===================================");
ResultSet tableResultSet = connection.getMetaData().getTables(null, null, "show_novel_user", new String[]{});
while(tableResultSet.next()) {
ResultSetMetaData resultSetMetaData = tableResultSet.getMetaData();
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
System.out.println("ColumnName :" + resultSetMetaData.getColumnName(i+1) + ",ColumnTypeName:" + resultSetMetaData.getColumnTypeName(i+1) + ",value:" + tableResultSet.getObject(resultSetMetaData.getColumnName(i+1)));
}
}
System.out.println("=========================字段信息==================================");
ResultSet columnResultSet = connection.getMetaData().getColumns(null, null, "show_novel_user", "user_id");
while(columnResultSet.next()) {
ResultSetMetaData resultSetMetaData = columnResultSet.getMetaData();
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
System.out.println("ColumnName :" + resultSetMetaData.getColumnName(i+1) + ",ColumnTypeName:" + resultSetMetaData.getColumnTypeName(i+1) + ",value:" + columnResultSet.getObject(resultSetMetaData.getColumnName(i+1)));
}
}
System.out.println("=========================主键信息==================================");
ResultSet primaryKeyResultSet = connection.getMetaData().getPrimaryKeys(null, null, "show_novel_user");
while(primaryKeyResultSet.next()) {
ResultSetMetaData resultSetMetaData = primaryKeyResultSet.getMetaData();
int count = resultSetMetaData.getColumnCount();
for (int i = 0; i < count; i++) {
System.out.println("ColumnName :" + resultSetMetaData.getColumnName(i+1) + ",ColumnTypeName:" + resultSetMetaData.getColumnTypeName(i+1) + ",value:" + primaryKeyResultSet.getObject(resultSetMetaData.getColumnName(i+1)));
}
}
}
相关文章推荐
- 【转载】通过SQL获取MSSQL的数据库相关信息收藏
- 老生常谈,获取数据库服务器的相关信息。
- 通过SQL获取MSSQL的数据库相关信息
- Java获取数据库的表中各字段的字段名等相关信息-很详细
- 通过mssql数据库来获取主机的硬件相关信息,网卡,硬盘,主板等
- 如何从SQL Server备份文件中获取数据库相关信息?
- 如何从SQL Server备份文件中获取数据库相关信息?
- php获取数据库表的相关信息,
- 针对不同数据库,获取当前用户所有有权限查看的表,以及表的创建时间、更新时间、注释等信息,表中字段的相关信息(包含分页实现)
- C#获取系统相关信息_详细异常信息
- Spring Cloud (14) | 微服务不能从git/github/gitlab中获取数据库信息 can't load properties from git/github/gitlab
- c#获取本机电脑相关信息
- json获取数据库的信息在前端页面显示方法
- 使用DatabaseMetaDate获取数据库信息
- ManagementClass类解析和C#如何获取硬件的相关信息
- 获取网卡的相关信息
- 使用Ado.net获取数据库架构信息
- stat(),lstat(),fstat() 获取文件/目录的相关信息
- Java中如何获取当前操作系统的相关信息
- C#获取自己电脑相关设备信息