Selaa lähdekoodia

数据治理-数据库创建与查询

ZHOUTD 1 vuosi sitten
vanhempi
commit
4613277908

+ 35 - 0
xzl-admin/src/main/java/com/xzl/web/controller/DataGovernanceController.java

@@ -0,0 +1,35 @@
+package com.xzl.web.controller;
+
+import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+import com.xzl.web.service.DataGovernanceService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/dataGovernance")
+public class DataGovernanceController {
+
+    private Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private DataGovernanceService dataGovernanceService;
+
+
+    @RequestMapping(value = "/databaseList",method = RequestMethod.GET)
+    public List<DatabaseInfo> databaseList(){
+        return dataGovernanceService.getDatabaseList();
+    }
+
+
+    @RequestMapping(value = "/createDatabase",method = RequestMethod.POST)
+    public Map<String,String> databaseList(String databaseName){
+        return dataGovernanceService.createDatabase(databaseName);
+    }
+
+
+}

+ 13 - 0
xzl-admin/src/main/java/com/xzl/web/mapper/DataGovernanceMapper.java

@@ -0,0 +1,13 @@
+package com.xzl.web.mapper;
+
+import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface DataGovernanceMapper {
+    List<DatabaseInfo> getDatabaseList();
+
+    void createDatabase(String databaseName);
+}

+ 10 - 0
xzl-admin/src/main/java/com/xzl/web/model/dataGovernance/entity/DatabaseInfo.java

@@ -0,0 +1,10 @@
+package com.xzl.web.model.dataGovernance.entity;
+
+import lombok.Data;
+
+@Data
+public class DatabaseInfo {
+    private String databaseName;
+    private String characterName;
+    private String collationName;
+}

+ 13 - 0
xzl-admin/src/main/java/com/xzl/web/service/DataGovernanceService.java

@@ -0,0 +1,13 @@
+package com.xzl.web.service;
+
+import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DataGovernanceService {
+
+    List<DatabaseInfo> getDatabaseList();
+
+    Map<String, String> createDatabase(String databaseName);
+}

+ 53 - 0
xzl-admin/src/main/java/com/xzl/web/service/impl/DataGovernanceServiceImpl.java

@@ -0,0 +1,53 @@
+package com.xzl.web.service.impl;
+
+
+import com.xzl.web.mapper.DataGovernanceMapper;
+import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+import com.xzl.web.service.DataGovernanceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class DataGovernanceServiceImpl implements DataGovernanceService {
+
+    @Autowired
+    private DataGovernanceMapper dataGovernanceMapper;
+
+
+
+    @Override
+    public List<DatabaseInfo> getDatabaseList() {
+        return dataGovernanceMapper.getDatabaseList();
+    }
+
+    @Override
+    public Map<String, String> createDatabase(String databaseName) {
+        Map<String,String> result = new HashMap<>();
+        if(databaseName.isEmpty()){
+            result.put("message","数据库名称不符合规则");
+            result.put("type","error");
+            return result;
+        }
+        if(!databaseName.matches("^[a-zA-Z_][a-zA-Z0-9_]{0,63}$")){
+            result.put("message","数据库名称不符合规则");
+            result.put("type","error");
+            return result;
+        }
+
+        try {
+            dataGovernanceMapper.createDatabase(databaseName);
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.put("message","创建失败!");
+            result.put("type","error");
+            return result;
+        }
+        result.put("message","创建成功!");
+        result.put("type","success");
+        return result;
+    }
+}

+ 17 - 0
xzl-admin/src/main/resources/mapper/DataGovernanceMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.xzl.web.mapper.DataGovernanceMapper">
+    <select id="getDatabaseList" resultType="com.xzl.web.model.dataGovernance.entity.DatabaseInfo">
+        select schema_name as databaseName,DEFAULT_CHARACTER_SET_NAME as characterName,DEFAULT_COLLATION_NAME as collationName
+        from information_schema.schemata
+    </select>
+
+
+
+    <update id="createDatabase" parameterType="string">
+        CREATE DATABASE IF NOT EXISTS ${databaseName}
+        DEFAULT CHARACTER SET utf8mb4
+        DEFAULT COLLATE utf8mb4_general_ci
+    </update>
+
+</mapper>

+ 0 - 1
xzl-admin/src/main/resources/mapper/MonitorAreaMapper.xml

@@ -78,7 +78,6 @@
             )
     </select>
 
-
     <insert id="saveArea" parameterType="com.xzl.web.model.monitorArea.entity.MonitorArea">
         INSERT INTO MONITOR_AREA(ID,AREA_NAME,AREA_TYPE,AREA_COLOR,AREA_DATA) VALUES
         (#{id},#{areaName},#{areaType},#{areaColor},#{areaData})

+ 148 - 0
xzl-ui/src/views/dataGovernance/databaseManage.vue

@@ -0,0 +1,148 @@
+<template>
+  <div>
+    <el-row style="height: 50px;padding-top: 7.2px;padding-left: 15px">
+      <el-button type="success" size="small" @click="handleAdd">增加</el-button>
+      <el-tooltip class="item" effect="dark" content="开发中...." placement="bottom">
+        <el-button type="danger" size="small">删除</el-button>
+      </el-tooltip>
+    </el-row>
+    <el-table
+      :data="tableData"
+      border
+      stripe
+      size="medium"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column
+        type="selection"
+        align="center"
+        width="55">
+      </el-table-column>
+      <el-table-column
+        align="center"
+        type="index"
+        label="序号"
+        width="100">
+      </el-table-column>
+      <el-table-column
+        prop="databaseName"
+        label="数据库名称"
+        width="300">
+      </el-table-column>
+      <el-table-column
+        prop="characterName"
+        label="字符集"
+        width="300">
+      </el-table-column>
+      <el-table-column
+        prop="collationName"
+        label="排序规则"
+        width="300">
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="操作"
+        width="200">
+        <template slot-scope="scope">
+          <el-button
+            @click.native.prevent="viewArea(scope.$index, tableData)"
+            type="text"
+            size="small"
+            :disabled="btnEnabled"
+          >
+            查看
+          </el-button>
+          <el-button
+            @click.native.prevent="changeArea(scope.$index, tableData)"
+            type="text"
+            size="small"
+            :disabled="btnEnabled"
+          >
+            修改
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <el-dialog
+      title="数据库管理"
+      :visible.sync="formVisible"
+      width="20%"
+      :before-close="handleClose"
+    >
+      <el-form :model="form">
+        <el-form-item label="数据库名称:">
+          <el-input v-model="form.databaseName" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="handleSave">保 存</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import request from '@/utils/request'
+
+export default {
+  data() {
+    return {
+      tableData: [],
+      formVisible: false,
+      form: {
+        databaseName: ""
+      },
+      multipleSelection: []
+
+    }
+  },
+  mounted() {
+    this.initData();
+  },
+  methods: {
+    initData() {
+      const t = this;
+      request({
+        url: "/dataGovernance/databaseList",
+        method: "get"
+      }).then(rs => {
+        t.tableData = rs;
+      })
+    },
+    handleAdd(){
+      this.formVisible=true;
+    },
+    handleClose() {
+      this.formVisible = false;
+      this.form.databaseName="";
+    },
+    handleSave(){
+      const t = this;
+      request({
+        url: "/dataGovernance/createDatabase?databaseName="+t.form.databaseName,
+        method: "post"
+      }).then(rs => {
+        t.$message(rs);
+        t.handleClose();
+        t.initData()
+      })
+    }
+  }
+}
+</script>
+
+<style rel="stylesheet/scss" lang="scss">
+
+.el-table {
+  width: 100%;
+
+  .el-table__header-wrapper table, .el-table__body-wrapper table {
+    width: 100% !important;
+  }
+
+  .el-table__body, .el-table__footer, .el-table__header {
+    table-layout: auto;
+  }
+}
+</style>

+ 1 - 1
xzl-ui/src/views/monitor/map/warn.vue

@@ -74,7 +74,7 @@ export default {
             let points = [];
             let pt = new BMap.Point(x, y);
             points.push(pt);
-            let icon = new BMap.Icon("/admin/images/area_icon16x16.png", new BMap.Size(16, 16));
+            let icon = new BMap.Icon(require("@/assets/images/area_icon16x16.png"), new BMap.Size(16, 16));
             let options = {
               icon: icon
             }