feat: 添加当前连接数据库信息
This commit is contained in:
parent
faaca67cc6
commit
4f0007ee01
|
@ -1,6 +1,7 @@
|
||||||
package cn.bunny.controller;
|
package cn.bunny.controller;
|
||||||
|
|
||||||
import cn.bunny.dao.entity.ColumnMetaData;
|
import cn.bunny.dao.entity.ColumnMetaData;
|
||||||
|
import cn.bunny.dao.entity.DatabaseInfoMetaData;
|
||||||
import cn.bunny.dao.result.Result;
|
import cn.bunny.dao.result.Result;
|
||||||
import cn.bunny.dao.vo.TableInfoVo;
|
import cn.bunny.dao.vo.TableInfoVo;
|
||||||
import cn.bunny.service.TableService;
|
import cn.bunny.service.TableService;
|
||||||
|
@ -26,6 +27,13 @@ public class TableController {
|
||||||
@Resource
|
@Resource
|
||||||
private TableService tableService;
|
private TableService tableService;
|
||||||
|
|
||||||
|
@Operation(summary = "当前数据库信息", description = "当前连接的数据库信息")
|
||||||
|
@GetMapping("databaseInfoMetaData")
|
||||||
|
public Result<DatabaseInfoMetaData> databaseInfoMetaData() {
|
||||||
|
DatabaseInfoMetaData databaseInfoMetaData = tableService.databaseInfoMetaData();
|
||||||
|
return Result.success(databaseInfoMetaData);
|
||||||
|
}
|
||||||
|
|
||||||
@Operation(summary = "当前配置的数据库", description = "当前配置的数据库")
|
@Operation(summary = "当前配置的数据库", description = "当前配置的数据库")
|
||||||
@GetMapping("currentDatabaseName")
|
@GetMapping("currentDatabaseName")
|
||||||
public Result<String> getCurrentDatabaseName() {
|
public Result<String> getCurrentDatabaseName() {
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
package cn.bunny.core;
|
package cn.bunny.core;
|
||||||
|
|
||||||
import cn.bunny.dao.entity.ColumnMetaData;
|
|
||||||
import cn.bunny.dao.entity.TableMetaData;
|
import cn.bunny.dao.entity.TableMetaData;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DatabaseMetaData;
|
import java.sql.DatabaseMetaData;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/* 数据库信息内容 */
|
/* 数据库信息内容 */
|
||||||
|
@ -29,7 +25,8 @@ public class DatabaseInfoCore {
|
||||||
* @param tableName 表名
|
* @param tableName 表名
|
||||||
* @return 主键列名的集合
|
* @return 主键列名的集合
|
||||||
*/
|
*/
|
||||||
public Set<String> getPrimaryKeyColumns(String tableName) throws SQLException {
|
@SneakyThrows
|
||||||
|
public Set<String> getPrimaryKeyColumns(String tableName) {
|
||||||
// 主键的key
|
// 主键的key
|
||||||
Set<String> primaryKeys = new HashSet<>();
|
Set<String> primaryKeys = new HashSet<>();
|
||||||
|
|
||||||
|
@ -49,43 +46,14 @@ public class DatabaseInfoCore {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取数据库中所有的表
|
|
||||||
*
|
|
||||||
* @param dbName 数据库名称,如果不传为数据库中所有的表
|
|
||||||
* @return 当前/所有 的数据库表
|
|
||||||
*/
|
|
||||||
public List<TableMetaData> getDbTableList(String dbName) throws SQLException {
|
|
||||||
// 所有的表属性
|
|
||||||
List<TableMetaData> list = new ArrayList<>();
|
|
||||||
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
|
||||||
DatabaseMetaData metaData = connection.getMetaData();
|
|
||||||
|
|
||||||
// 当前数据库中所有的表
|
|
||||||
ResultSet tables = metaData.getTables(dbName, null, "%", new String[]{"TABLE"});
|
|
||||||
|
|
||||||
while (tables.next()) {
|
|
||||||
// 表名称
|
|
||||||
dbName = tables.getString("TABLE_NAME");
|
|
||||||
|
|
||||||
// 设置表信息
|
|
||||||
TableMetaData tableMetaData = tableInfo(dbName);
|
|
||||||
list.add(tableMetaData);
|
|
||||||
}
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取表注释信息
|
* 获取表注释信息
|
||||||
*
|
*
|
||||||
* @param tableName 数据库表名
|
* @param tableName 数据库表名
|
||||||
* @return 表信息
|
* @return 表信息
|
||||||
* @throws SQLException SQLException
|
|
||||||
*/
|
*/
|
||||||
public TableMetaData tableInfo(String tableName) throws SQLException {
|
@SneakyThrows
|
||||||
|
public TableMetaData tableInfoMetaData(String tableName) {
|
||||||
TableMetaData tableMetaData;
|
TableMetaData tableMetaData;
|
||||||
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
|
@ -116,78 +84,4 @@ public class DatabaseInfoCore {
|
||||||
return tableMetaData;
|
return tableMetaData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库表列信息
|
|
||||||
*
|
|
||||||
* @param tableName 表名
|
|
||||||
* @return 列表信息
|
|
||||||
* @throws SQLException SQLException
|
|
||||||
*/
|
|
||||||
public List<ColumnMetaData> columnInfo(String tableName) throws SQLException {
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
|
||||||
DatabaseMetaData metaData = connection.getMetaData();
|
|
||||||
|
|
||||||
List<ColumnMetaData> columns = new ArrayList<>();
|
|
||||||
|
|
||||||
// 当前表的主键
|
|
||||||
Set<String> primaryKeyColumns = getPrimaryKeyColumns(tableName);
|
|
||||||
|
|
||||||
// 当前表的列信息
|
|
||||||
try (ResultSet columnsRs = metaData.getColumns(null, null, tableName, null)) {
|
|
||||||
while (columnsRs.next()) {
|
|
||||||
ColumnMetaData column = new ColumnMetaData();
|
|
||||||
|
|
||||||
// 列字段
|
|
||||||
String columnName = columnsRs.getString("COLUMN_NAME");
|
|
||||||
|
|
||||||
// 将当前表的列类型转成 Java 类型
|
|
||||||
String javaType = TypeConvertCore.convertToJavaType(column.getJdbcType());
|
|
||||||
|
|
||||||
// 设置列字段
|
|
||||||
column.setColumnName(columnName);
|
|
||||||
// 列字段转成 下划线 -> 小驼峰
|
|
||||||
column.setFieldName(TypeConvertCore.convertToCamelCase(column.getColumnName()));
|
|
||||||
|
|
||||||
// 字段类型
|
|
||||||
column.setJdbcType(columnsRs.getString("TYPE_NAME"));
|
|
||||||
// 字段类型转 Java 类型
|
|
||||||
column.setJavaType(javaType);
|
|
||||||
// 字段类型转 JavaScript 类型
|
|
||||||
column.setJavascriptType(StringUtils.uncapitalize(javaType));
|
|
||||||
|
|
||||||
// 备注信息
|
|
||||||
column.setComment(columnsRs.getString("REMARKS"));
|
|
||||||
|
|
||||||
// 确保 primaryKeyColumns 不为空
|
|
||||||
if (!primaryKeyColumns.isEmpty()) {
|
|
||||||
// 是否是主键
|
|
||||||
boolean isPrimaryKey = primaryKeyColumns.contains(columnName);
|
|
||||||
column.setIsPrimaryKey(isPrimaryKey);
|
|
||||||
}
|
|
||||||
columns.add(column);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
columns.get(0).setIsPrimaryKey(true);
|
|
||||||
|
|
||||||
return columns;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库所有的信息
|
|
||||||
*
|
|
||||||
* @param tableName 表名
|
|
||||||
* @return 表内容
|
|
||||||
* @throws SQLException SQLException
|
|
||||||
*/
|
|
||||||
public TableMetaData dbInfo(String tableName) throws SQLException {
|
|
||||||
List<ColumnMetaData> columnMetaData = columnInfo(tableName);
|
|
||||||
TableMetaData tableMetaData = tableInfo(tableName);
|
|
||||||
|
|
||||||
tableMetaData.setColumns(columnMetaData);
|
|
||||||
|
|
||||||
return tableMetaData;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,11 @@ public class ColumnMetaData {
|
||||||
/* 列名称 */
|
/* 列名称 */
|
||||||
private String columnName;
|
private String columnName;
|
||||||
|
|
||||||
/* 字段名称 */
|
/* 字段名称,小驼峰名称 */
|
||||||
private String fieldName;
|
private String lowercaseName;
|
||||||
|
|
||||||
|
/* 大驼峰名称 */
|
||||||
|
private String uppercaseName;
|
||||||
|
|
||||||
/* 数据库字段类型 */
|
/* 数据库字段类型 */
|
||||||
private String jdbcType;
|
private String jdbcType;
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package cn.bunny.dao.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DatabaseInfoMetaData {
|
||||||
|
|
||||||
|
/* 数据库产品名称 */
|
||||||
|
private String databaseProductName;
|
||||||
|
|
||||||
|
/* 数据库产品版本 */
|
||||||
|
private String databaseProductVersion;
|
||||||
|
|
||||||
|
/* 驱动名称 */
|
||||||
|
private String driverName;
|
||||||
|
|
||||||
|
/* 数据库驱动版本 */
|
||||||
|
private String driverVersion;
|
||||||
|
|
||||||
|
/* 数据链接url */
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
/* 数据库用户 */
|
||||||
|
private String username;
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.bunny.service;
|
package cn.bunny.service;
|
||||||
|
|
||||||
import cn.bunny.dao.entity.ColumnMetaData;
|
import cn.bunny.dao.entity.ColumnMetaData;
|
||||||
|
import cn.bunny.dao.entity.DatabaseInfoMetaData;
|
||||||
import cn.bunny.dao.vo.TableInfoVo;
|
import cn.bunny.dao.vo.TableInfoVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -29,4 +30,11 @@ public interface TableService {
|
||||||
* @return 当前表所有的列内容
|
* @return 当前表所有的列内容
|
||||||
*/
|
*/
|
||||||
List<ColumnMetaData> tableColumnInfo(String tableName);
|
List<ColumnMetaData> tableColumnInfo(String tableName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库所有的信息
|
||||||
|
*
|
||||||
|
* @return 当前连接的数据库信息属性
|
||||||
|
*/
|
||||||
|
DatabaseInfoMetaData databaseInfoMetaData();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,32 @@
|
||||||
package cn.bunny.service.impl;
|
package cn.bunny.service.impl;
|
||||||
|
|
||||||
import cn.bunny.core.DatabaseInfoCore;
|
import cn.bunny.core.DatabaseInfoCore;
|
||||||
|
import cn.bunny.core.TypeConvertCore;
|
||||||
import cn.bunny.dao.entity.ColumnMetaData;
|
import cn.bunny.dao.entity.ColumnMetaData;
|
||||||
|
import cn.bunny.dao.entity.DatabaseInfoMetaData;
|
||||||
import cn.bunny.dao.entity.TableMetaData;
|
import cn.bunny.dao.entity.TableMetaData;
|
||||||
import cn.bunny.dao.vo.TableInfoVo;
|
import cn.bunny.dao.vo.TableInfoVo;
|
||||||
import cn.bunny.service.TableService;
|
import cn.bunny.service.TableService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class TableServiceImpl implements TableService {
|
public class TableServiceImpl implements TableService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataSource dataSource;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DatabaseInfoCore databaseInfoCore;
|
private DatabaseInfoCore databaseInfoCore;
|
||||||
|
|
||||||
|
@ -29,7 +41,7 @@ public class TableServiceImpl implements TableService {
|
||||||
public TableInfoVo tableMetaData(String tableName) {
|
public TableInfoVo tableMetaData(String tableName) {
|
||||||
TableInfoVo tableInfoVo = new TableInfoVo();
|
TableInfoVo tableInfoVo = new TableInfoVo();
|
||||||
|
|
||||||
TableMetaData tableMetaData = databaseInfoCore.tableInfo(tableName);
|
TableMetaData tableMetaData = databaseInfoCore.tableInfoMetaData(tableName);
|
||||||
BeanUtils.copyProperties(tableMetaData, tableInfoVo);
|
BeanUtils.copyProperties(tableMetaData, tableInfoVo);
|
||||||
|
|
||||||
return tableInfoVo;
|
return tableInfoVo;
|
||||||
|
@ -43,8 +55,26 @@ public class TableServiceImpl implements TableService {
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
public List<TableInfoVo> databaseTableList(String dbName) {
|
public List<TableInfoVo> databaseTableList(String dbName) {
|
||||||
|
|
||||||
// 当前数据库数据库所有的表
|
// 当前数据库数据库所有的表
|
||||||
List<TableMetaData> allTableInfo = databaseInfoCore.getDbTableList(dbName);
|
List<TableMetaData> allTableInfo = new ArrayList<>();
|
||||||
|
|
||||||
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
|
DatabaseMetaData metaData = connection.getMetaData();
|
||||||
|
|
||||||
|
// 当前数据库中所有的表
|
||||||
|
ResultSet tables = metaData.getTables(dbName, null, "%", new String[]{"TABLE"});
|
||||||
|
|
||||||
|
while (tables.next()) {
|
||||||
|
// 表名称
|
||||||
|
dbName = tables.getString("TABLE_NAME");
|
||||||
|
|
||||||
|
// 设置表信息
|
||||||
|
TableMetaData tableMetaData = databaseInfoCore.tableInfoMetaData(dbName);
|
||||||
|
allTableInfo.add(tableMetaData);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return allTableInfo.stream().map(tableMetaData -> {
|
return allTableInfo.stream().map(tableMetaData -> {
|
||||||
TableInfoVo tableInfoVo = new TableInfoVo();
|
TableInfoVo tableInfoVo = new TableInfoVo();
|
||||||
|
@ -63,6 +93,81 @@ public class TableServiceImpl implements TableService {
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
public List<ColumnMetaData> tableColumnInfo(String tableName) {
|
public List<ColumnMetaData> tableColumnInfo(String tableName) {
|
||||||
return databaseInfoCore.columnInfo(tableName);
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
|
DatabaseMetaData metaData = connection.getMetaData();
|
||||||
|
|
||||||
|
List<ColumnMetaData> columns = new ArrayList<>();
|
||||||
|
|
||||||
|
// 当前表的主键
|
||||||
|
Set<String> primaryKeyColumns = databaseInfoCore.getPrimaryKeyColumns(tableName);
|
||||||
|
|
||||||
|
// 当前表的列信息
|
||||||
|
try (ResultSet columnsRs = metaData.getColumns(null, null, tableName, null)) {
|
||||||
|
while (columnsRs.next()) {
|
||||||
|
ColumnMetaData column = new ColumnMetaData();
|
||||||
|
|
||||||
|
// 列字段
|
||||||
|
String columnName = columnsRs.getString("COLUMN_NAME");
|
||||||
|
|
||||||
|
// 将当前表的列类型转成 Java 类型
|
||||||
|
String javaType = TypeConvertCore.convertToJavaType(column.getJdbcType());
|
||||||
|
|
||||||
|
// 设置列字段
|
||||||
|
column.setColumnName(columnName);
|
||||||
|
|
||||||
|
// 列字段转成 下划线 -> 小驼峰
|
||||||
|
column.setLowercaseName(TypeConvertCore.convertToCamelCase(column.getColumnName()));
|
||||||
|
|
||||||
|
// 列字段转成 下划线 -> 大驼峰名称
|
||||||
|
column.setUppercaseName(TypeConvertCore.convertToCamelCase(column.getColumnName(), true));
|
||||||
|
|
||||||
|
// 字段类型
|
||||||
|
column.setJdbcType(columnsRs.getString("TYPE_NAME"));
|
||||||
|
|
||||||
|
// 字段类型转 Java 类型
|
||||||
|
column.setJavaType(javaType);
|
||||||
|
|
||||||
|
// 字段类型转 JavaScript 类型
|
||||||
|
column.setJavascriptType(StringUtils.uncapitalize(javaType));
|
||||||
|
|
||||||
|
// 备注信息
|
||||||
|
column.setComment(columnsRs.getString("REMARKS"));
|
||||||
|
|
||||||
|
// 确保 primaryKeyColumns 不为空
|
||||||
|
if (!primaryKeyColumns.isEmpty()) {
|
||||||
|
// 是否是主键
|
||||||
|
boolean isPrimaryKey = primaryKeyColumns.contains(columnName);
|
||||||
|
column.setIsPrimaryKey(isPrimaryKey);
|
||||||
|
}
|
||||||
|
columns.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
columns.get(0).setIsPrimaryKey(true);
|
||||||
|
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库所有的信息
|
||||||
|
*
|
||||||
|
* @return 当前连接的数据库信息属性
|
||||||
|
*/
|
||||||
|
@SneakyThrows
|
||||||
|
@Override
|
||||||
|
public DatabaseInfoMetaData databaseInfoMetaData() {
|
||||||
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
|
DatabaseMetaData metaData = connection.getMetaData();
|
||||||
|
|
||||||
|
return DatabaseInfoMetaData.builder()
|
||||||
|
.databaseProductName(metaData.getDatabaseProductName())
|
||||||
|
.databaseProductVersion(metaData.getDatabaseProductVersion())
|
||||||
|
.driverName(metaData.getDriverName())
|
||||||
|
.driverVersion(metaData.getDriverVersion())
|
||||||
|
.url(metaData.getURL())
|
||||||
|
.username(metaData.getUserName())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package cn.bunny.service.impl;
|
package cn.bunny.service.impl;
|
||||||
|
|
||||||
|
import cn.bunny.core.DatabaseInfoCore;
|
||||||
import cn.bunny.core.ResourceFileCore;
|
import cn.bunny.core.ResourceFileCore;
|
||||||
import cn.bunny.dao.dto.VmsArgumentDto;
|
import cn.bunny.dao.dto.VmsArgumentDto;
|
||||||
import cn.bunny.dao.entity.ColumnMetaData;
|
import cn.bunny.dao.entity.ColumnMetaData;
|
||||||
|
@ -34,6 +35,9 @@ public class VmsServiceImpl implements VmsService {
|
||||||
@Resource
|
@Resource
|
||||||
private TableService tableService;
|
private TableService tableService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DatabaseInfoCore databaseInfoCore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成服务端代码
|
* 生成服务端代码
|
||||||
*
|
*
|
||||||
|
|
|
@ -84,7 +84,7 @@ public class JDBCTest {
|
||||||
while (columnsRs.next()) {
|
while (columnsRs.next()) {
|
||||||
ColumnMetaData column = new ColumnMetaData();
|
ColumnMetaData column = new ColumnMetaData();
|
||||||
column.setColumnName(columnsRs.getString("COLUMN_NAME"));
|
column.setColumnName(columnsRs.getString("COLUMN_NAME"));
|
||||||
column.setFieldName(TypeConvertCore.convertToCamelCase(column.getColumnName()));
|
column.setLowercaseName(TypeConvertCore.convertToCamelCase(column.getColumnName()));
|
||||||
column.setJdbcType(columnsRs.getString("TYPE_NAME"));
|
column.setJdbcType(columnsRs.getString("TYPE_NAME"));
|
||||||
column.setJavaType(TypeConvertCore.convertToJavaType(column.getJdbcType()));
|
column.setJavaType(TypeConvertCore.convertToJavaType(column.getJdbcType()));
|
||||||
column.setComment(columnsRs.getString("REMARKS"));
|
column.setComment(columnsRs.getString("REMARKS"));
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package cn.bunny.utils;
|
package cn.bunny.utils;
|
||||||
|
|
||||||
import cn.bunny.core.DatabaseInfoCore;
|
|
||||||
import cn.bunny.dao.entity.ColumnMetaData;
|
|
||||||
import cn.bunny.dao.entity.TableMetaData;
|
import cn.bunny.dao.entity.TableMetaData;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -12,7 +10,6 @@ import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DatabaseMetaData;
|
import java.sql.DatabaseMetaData;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -21,26 +18,12 @@ class DatabaseInfoCoreTest {
|
||||||
|
|
||||||
String tableName = "sys_i18n";
|
String tableName = "sys_i18n";
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private DatabaseInfoCore databaseInfoCore;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DataSource dataSource;
|
private DataSource dataSource;
|
||||||
|
|
||||||
@Test
|
|
||||||
void columnInfo() throws SQLException {
|
|
||||||
List<ColumnMetaData> columnMetaDataList = databaseInfoCore.columnInfo(tableName);
|
|
||||||
columnMetaDataList.forEach(System.out::println);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void dbInfo() throws SQLException {
|
void testTableInfoMetaData() {
|
||||||
TableMetaData tableMetaData = databaseInfoCore.dbInfo(tableName);
|
|
||||||
System.out.println(tableMetaData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testTableInfo() {
|
|
||||||
TableMetaData tableMetaData;
|
TableMetaData tableMetaData;
|
||||||
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
|
@ -51,13 +34,7 @@ class DatabaseInfoCoreTest {
|
||||||
if (tables.next()) {
|
if (tables.next()) {
|
||||||
String remarks = tables.getString("REMARKS");
|
String remarks = tables.getString("REMARKS");
|
||||||
String tableCat = tables.getString("TABLE_CAT");
|
String tableCat = tables.getString("TABLE_CAT");
|
||||||
String tableSchem = tables.getString("TABLE_SCHEM");
|
|
||||||
String tableType = tables.getString("TABLE_TYPE");
|
String tableType = tables.getString("TABLE_TYPE");
|
||||||
String typeCat = tables.getString("TYPE_CAT");
|
|
||||||
String typeSchem = tables.getString("TYPE_SCHEM");
|
|
||||||
String typeName = tables.getString("TYPE_NAME");
|
|
||||||
String selfReferencingColName = tables.getString("SELF_REFERENCING_COL_NAME");
|
|
||||||
String refGeneration = tables.getString("REF_GENERATION");
|
|
||||||
|
|
||||||
tableMetaData = TableMetaData.builder()
|
tableMetaData = TableMetaData.builder()
|
||||||
.tableName(tableName)
|
.tableName(tableName)
|
||||||
|
|
Loading…
Reference in New Issue