根据id找数据库里的表以及表的元信息
- 返回表的list
- 选择的时候怎么区分?选择的是id对
- 路线:数据库id–数据库id对应的表–取里面的id和描述–找meta表
在service里做这些操作
用户端理思路
- 用户通过输入框输入json 下端按钮 下部返回值框
2. 输入json后
- 通过字符串匹配,看用户输入的对不对 初步想法KMP算法
- 注意针对系统数据库,我们需要知道的仅仅是数据库名,列名和表名就可以,如果判断用户输入的这一条是对的,不过是把不同的地方取出来
- 可以管理员的JSON那就可以创建对象,
- Springboot如何直接执行SQL语句?
管理员 选择变json 相关代码
var flagmap={}
// 首先先初始化
for(var i1=0;i1<this.choosed.length;i1++){
console.log("token:----------")
console.log(this.choosed[i1].token)
var splits=this.choosed[i1].token.split('-')
let chartid=splits[0]
let metaid= splits[1]
// 针对每个表来说,必须有一个唯一的标识证明其是否全选
if(!flagmap.hasOwnProperty(chartid)) //结果为false,表示不包含;否则表示包含
{
//如果这里是0,则证明需先将这个表内所有列放进去,放完变成2,如果是1,则根据metaid放
if(typeof(metaid)=="undefined"){flagmap[chartid]=0}
else{flagmap[chartid]=1}
}
for(var i3=0;i3<this.chartsinfo.length;i3++){
if(this.chartsinfo[i3].id==chartid){
this.json.metas[this.chartsinfo[i3].en]={}
}
}
}
console.log(flagmap)
for(var i=0;i<this.choosed.length;i++){//先遍历然后切
console.log("token:----------")
console.log(this.choosed[i].token)
var splits=this.choosed[i].token.split('-')
let chartid=splits[0]
let metaid= splits[1]
// 如果选了这一个表且没放进去
if(flagmap[chartid]==0){
// 遍历所有的表,看是哪个chart
for(var i2=0;i2<this.chartsinfo.length;i2++){
if(this.chartsinfo[i2].id==chartid){
// 首先把这个的名字放入chartnamelist,然后把该表的所有东西放入后面,但是要先创建一个对象
var metalist=this.chartsinfo[i2].children
this.json.chartsname.push(this.chartsinfo[i2].en)
var temp={}
for(var j=0;j<metalist.length;j++){
temp[metalist[j].en]=metalist[j].cn
}
this.json.metas[this.chartsinfo[i2].en]=temp
flagmap[chartid]=2
}
}
}
// 如果选择了该表的单列,根据metaid
if(flagmap[chartid]==1){
// 先看是哪个表
for(var i2=0;i2<this.chartsinfo.length;i2++){
if(this.chartsinfo[i2].id==chartid){
// 首先把这个的名字放入chartnamelist,然后把该表的所有东西放入后面,但是要先创建一个对象
var metalist=this.chartsinfo[i2].children
var x = this.json.chartsname.lastIndexOf(this.chartsinfo[i2].en);
if(x==-1){
this.json.chartsname.push(this.chartsinfo[i2].en)}
for(var j=0;j<metalist.length;j++){
if(metalist[j].id==metaid){
// temp[metalist[j].en]=metalist[j].cn
var chartname=this.chartsinfo[i2].en
temp=this.json.metas[chartname]
temp[metalist[j].en]='metalist[j].cn'
temp[metalist[j].en]=metalist[j].cn
}
}
this.json.metas[this.chartsinfo[i2].en]=temp
}
}
}if(flagmap[chartid]==2){
console.log("均已放进去了")
}
}
this.ruleForm.content=JSON.stringify(this.json)
效果