Commit 382b31c6 by 宋珺琪

数据表统计功能

parent 2155915c
package com.founder.publicapi.controller.Database;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 数据表统计功能
*/
@RestController
@RequestMapping("/database")
@Api(tags = "数据表统计功能")
public class DatabaseController {
@OperLog(message = "表统计",operation = OperationType.QUERY)
@PostMapping("/listcount")
@ApiOperation(value = "表统计")
public MapRestResult listcount(){
List<Map<Object, Object>> database = new ArrayList<>();
try
{
Class.forName("com.mysql.cj.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
e.printStackTrace();
return new MapRestResult().error("Error loading Mysql Driver!");
}
try
{
Connection connect = DriverManager.getConnection("jdbc:mysql://47.92.48.137:3900/skyp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root","gkptCcYy123");
// 连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery
("select TABLE_NAME '表名称',table_comment '表说明',CREATE_TIME '创建时间' from information_schema.tables where table_schema='skyp' and (TABLE_NAME like 'sk%' or TABLE_NAME like 'ksh%') limit 0,100");
while (rs.next())
{
/* System.out.println(rs.next());
System.out.println("tostring"+rs.getString("表名称"));
System.out.println("date"+rs.getDate("表名称"));*/
Map<Object, Object> map = new HashMap<>();
map.put("表名称",rs.getString("表名称"));
map.put("表说明",rs.getString("表说明"));
map.put("创建时间",rs.getString("创建时间"));
database.add(map);
}
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
System.out.print("get data error!");
return new MapRestResult().error("get data error!");
}
return new MapRestResult(200,"ok",database.size(),database);
}
@OperLog(message = "表名模糊搜索",operation = OperationType.QUERY)
@PostMapping("/selecttable")
@ApiOperation(value = "表名模糊搜索")
public MapRestResult selecttable(String table){
List<Map<Object, Object>> database = new ArrayList<>();
try
{
Class.forName("com.mysql.cj.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
e.printStackTrace();
return new MapRestResult().error("Error loading Mysql Driver!");
}
try
{
Connection connect = DriverManager.getConnection("jdbc:mysql://47.92.48.137:3900/skyp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root","gkptCcYy123");
// 连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery
("select TABLE_NAME '表名称',table_comment '表说明',CREATE_TIME '创建时间' from information_schema.tables where table_schema='skyp' and TABLE_NAME like '%"+table+"%' and (TABLE_NAME like 'sk%' or TABLE_NAME like 'ksh%') limit 0,100");
while (rs.next())
{
/* System.out.println(rs.next());
System.out.println("tostring"+rs.getString("表名称"));
System.out.println("date"+rs.getDate("表名称"));*/
Map<Object, Object> map = new HashMap<>();
map.put("表名称",rs.getString("表名称"));
map.put("表说明",rs.getString("表说明"));
map.put("创建时间",rs.getString("创建时间"));
database.add(map);
}
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
System.out.print("get data error!");
return new MapRestResult().error("get data error!");
}
return new MapRestResult(200,"ok",database.size(),database);
}
@OperLog(message = "表详情",operation = OperationType.QUERY)
@PostMapping("/details")
@ApiOperation(value = "表详情")
public MapRestResult details(String table){
List<Map<Object, Object>> database = new ArrayList<>();
try
{
Class.forName("com.mysql.cj.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
e.printStackTrace();
return new MapRestResult().error("Error loading Mysql Driver!");
}
try
{
Connection connect = DriverManager.getConnection("jdbc:mysql://47.92.48.137:3900/skyp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root","gkptCcYy123");
// 连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery
("select COLUMN_NAME '列名',DATA_TYPE '类型' ,COLUMN_COMMENT '字段说明' from information_schema.COLUMNS where TABLE_NAME='"+table+"'");
while (rs.next())
{
/*
System.out.println("tostring"+rs.getString("表名称"));
System.out.println("date"+rs.getDate("表名称"));*/
Map<Object, Object> map = new HashMap<>();
map.put("列名",rs.getString("列名"));
map.put("类型",rs.getString("类型"));
map.put("字段说明",rs.getString("字段说明"));
database.add(map);
}
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
return new MapRestResult().error("get data error!");
}
return new MapRestResult(200,"ok",database.size(),database);
}
public static void main(String[] args) {
try
{
Class.forName("com.mysql.cj.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();
}
try
{
Connection connect = DriverManager.getConnection("jdbc:mysql://47.92.48.137:3900/skyp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root","gkptCcYy123");
// 连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery
("select TABLE_NAME '表名称',table_comment '表说明',CREATE_TIME '创建时间' from information_schema.tables where table_schema='skyp' and (TABLE_NAME like 'sk%' or TABLE_NAME like 'ksh%') limit 1,100");
while (rs.next())
{
// System.out.println(rs.getString("Cno"));
System.out.println(rs.getString("表名称"));
//System.out.println(rs.getString());
// System.out.println(rs.getString("tables"));/
}
}
catch (Exception e)
{
System.out.print("get data error!");
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment