提交 c4f9d35a 编写于 作者: 小柒2012

在线数据库查询

上级 9f2c1aca
package com.tools.module.app.service;
import com.tools.common.model.Result;
public interface AppQueryService {
Result crud(String sql);
}
package com.tools.module.app.service.impl;
import com.tools.common.dynamicquery.DynamicQuery;
import com.tools.common.model.Result;
import com.tools.module.app.service.AppQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@Service
public class AppQueryServiceImpl implements AppQueryService {
@Autowired
private DynamicQuery dynamicQuery;
@Override
@Transactional(rollbackFor=Exception.class)
public Result crud(String sql) {
if(sql.startsWith("SELECT")||sql.startsWith("select")){
List<Map<String,String>> list
= dynamicQuery.nativeQueryListMap(sql,null);
return Result.ok(list);
}else{
int count = dynamicQuery.nativeExecuteUpdate(sql);
return Result.ok(count);
}
}
}
package com.tools.module.app.web;
import com.tools.common.dynamicquery.DynamicQuery;
import com.tools.common.model.Result;
import com.tools.common.util.HttpClient;
import com.tools.module.app.entity.AppTinyUrl;
import com.tools.module.app.service.AppQueryService;
import com.tools.module.app.service.AppTinyUrlService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 在线查询
*/
@Api(tags ="在线查询")
@RestController
@RequestMapping("app/query")
public class QueryController {
@Autowired
private AppQueryService queryService;
/**
* 查询
* @param sql
* @return
*/
@RequestMapping("crud")
public Result crud(String sql) {
return queryService.crud(sql);
}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head th:replace="common/head :: head(link)"/>
<body>
<div id="app" class="layui-fluid" v-cloak>
<div class="layui-row" style="padding: 20px">
<template>
<i-input type="textarea" :autosize="{minRows: 6,maxRows: 10}" v-model="sql" placeholder="输入任务"></i-input>
<br/> <br/>
<i-button style="float: right" @click="query" type="primary" icon="ios-search">查询</i-button>
</template>
<br/> <br/><br/>
<template>
<i-input type="textarea" :autosize="{minRows: 10}" v-model="result" placeholder="查询结果"></i-input>
</template>
</div>
</div>
<div th:replace="common/foot :: foot(script、jquery)"></div>
<script th:inline="none">
layui.use(["okUtils", "okLayer"], function () {
var okUtils = layui.okUtils;
var okLayer = layui.okLayer;
var vm = new Vue({
el: '#app',
data: function(){
var that = this;
return {
sql:"",
result:''
}
},
methods: {
query : function() {
okUtils.ajaxCloud({
url:"/app/query/crud",
param : {'sql':vm.sql},
success : function(result) {
vm.result = formatJson(JSON.stringify(result))
}
});
}
},
created: function() {
}
})
});
// 工具方法
var formatJson = function(json, options) {
var reg = null,
formatted = '',
pad = 0,
PADDING = ' '; // one can also use '\t' or a different number of spaces
// optional settings
options = options || {};
// remove newline where '{' or '[' follows ':'
options.newlineAfterColonIfBeforeBraceOrBracket = (options.newlineAfterColonIfBeforeBraceOrBracket === true) ? true : false;
// use a space after a colon
options.spaceAfterColon = (options.spaceAfterColon === false) ? false : true;
// begin formatting...
// make sure we start with the JSON as a string
if (typeof json !== 'string') {
json = JSON.stringify(json);
}
// parse and stringify in order to remove extra whitespace
json = JSON.parse(json);
json = JSON.stringify(json);
// add newline before and after curly braces
reg = /([\{\}])/g;
json = json.replace(reg, '\r\n$1\r\n');
// add newline before and after square brackets
reg = /([\[\]])/g;
json = json.replace(reg, '\r\n$1\r\n');
// add newline after comma
reg = /(\,)/g;
json = json.replace(reg, '$1\r\n');
// remove multiple newlines
reg = /(\r\n\r\n)/g;
json = json.replace(reg, '\r\n');
// remove newlines before commas
reg = /\r\n\,/g;
json = json.replace(reg, ',');
// optional formatting...
if (!options.newlineAfterColonIfBeforeBraceOrBracket) {
reg = /\:\r\n\{/g;
json = json.replace(reg, ':{');
reg = /\:\r\n\[/g;
json = json.replace(reg, ':[');
}
if (options.spaceAfterColon) {
reg = /\:/g;
json = json.replace(reg, ': ');
}
$.each(json.split('\r\n'), function(index, node) {
var i = 0,
indent = 0,
padding = '';
if (node.match(/\{$/) || node.match(/\[$/)) {
indent = 1;
} else if (node.match(/\}/) || node.match(/\]/)) {
if (pad !== 0) {
pad -= 1;
}
} else {
indent = 0;
}
for (i = 0; i < pad; i++) {
padding += PADDING;
}
formatted += padding + node + '\r\n';
pad += indent;
});
return formatted;
};
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册