package com.rabbitsoft.controller;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.rabbitsoft.model.ColumnProperties;
import com.rabbitsoft.model.Table;
import com.rabbitsoft.model.TableColumn;
/**
* Author:Rabbit Email:rabbitsoft@vip.qq.com QQ: 406516761 CreateTime: Dec 24,
* 2013
*/
@Controller
@RequestMapping("/DataBase.do")
public class DataBaseController extends BaseController {
@RequestMapping(params = "action=GetTables", method = RequestMethod.POST)
public void GetTables(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
List<Table> tables = Service.getDatabaseService().GetTables();
String result = "";
for (Table table : tables) {
result += "{text:'" + table.getTABLES_IN_SOFTWARECONFIG()
+ "'},";
}
if (result.equals("")) {
out.write("[]");
} else {
out.write("[" + result.substring(0, result.length() - 1) + "]");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@RequestMapping(params = "action=DropTable", method = RequestMethod.POST)
public void DropTable(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String tableName = request.getParameter("tableName");
if (Service.getDatabaseService().ExecuteSQL(
"DROP TABLE `" + tableName + "`")) {
out.write("{status:true}");
} else {
out.write("{status:false}");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
@RequestMapping(params = "action=CreateTable", method = RequestMethod.POST)
public void CreateTable(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String tableName = request.getParameter("tableName");
String table = request.getParameter("table");
JSONArray jsonarray = JSONArray.fromObject(table);
List<TableColumn> list = (List<TableColumn>) JSONArray
.toCollection(jsonarray, TableColumn.class);
if (Service.getDatabaseService()
.ExecuteSQL(getSQL(list, tableName))) {
out.write("{status:true}");
} else {
out.write("{status:false}");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getSQL(List<TableColumn> ltc, String tableName) {
String sql = "DROP TABLE IF EXISTS `" + tableName + "`;CREATE TABLE `"
+ tableName + "` (";
boolean autoIncrement = false;
for (TableColumn tc : ltc) {
sql += "`" + tc.getColumnName() + "` " + this.getDataType(tc) + " "
+ this.getIsNull(tc) + ",";
if (tc.getAutoIncrement() && !autoIncrement) {
autoIncrement = tc.getAutoIncrement();
}
}
if (this.getPrimaryKey(ltc) == "") {
sql = sql.substring(0, sql.length() - 1);
}
sql += this.getPrimaryKey(ltc) + ") ENGINE=MyISAM "
+ (autoIncrement ? "AUTO_INCREMENT=0" : "")
+ " DEFAULT CHARSET=utf8;";
return sql;
}
public String getDataType(TableColumn tc) {
if (tc.getLength() != 0) {
return tc.getDataType() + "(" + tc.getLength() + ")";
} else {
return tc.getDataType();
}
}
public String getIsNull(TableColumn tc) {
if (tc.getIsKey() && tc.getAutoIncrement()) {
return "NOT NULL AUTO_INCREMENT";
}
if (tc.getIsNull()) {
return "DEFAULT NULL";
} else {
return "NOT NULL";
}
}
public String getPrimaryKey(List<TableColumn> ltc) {
String pk = "PRIMARY KEY (";
for (TableColumn tc : ltc) {
if (tc.getIsKey()) {
pk += "`" + tc.getColumnName() + "`,";
}
}
if ("PRIMARY KEY (".equals(pk)) {
return "";
} else {
return pk.substring(0, pk.length() - 1) + ")";
}
}
@RequestMapping(params = "action=GetAllColumn", method = RequestMethod.POST)
public void GetAllColumn(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String tableName = request.getParameter("tName");
List<ColumnProperties> columnList = Service.getDatabaseService()
.GetAllColumn(tableName);
List<TableColumn> tableColumn = convertToTableColumn(columnList);
JSONArray jsonArray = new JSONArray();
for (TableColumn tc : tableColumn) {
jsonArray.add(JSONObject.fromObject(tc));
}
out.write(jsonArray.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
public List<TableColumn> convertToTableColumn(List<ColumnProperties> res) {
List<TableColumn> list = new ArrayList<TableColumn>();
for (ColumnProperties cp : res) {
TableColumn tc = new TableColumn();
tc.setColumnName(cp.getField());
tc.setIsNull(cp.getNull().equals("NO") ? false : true);
tc.setIsKey(cp.getKey().equals("PRI") ? true : false);
tc.setAutoIncrement(cp.getExtra().equals("auto_increment") ? true
: false);
String[] tl = this.getTypeAndLength(cp.getType());
tc.setDataType(tl[0]);
tc.setLength(Integer.parseInt(tl[1]));
list.add(tc);
}
return list;
}
public String[] getTypeAndLength(String dataType) {
if (dataType.equals("float")) {
dataType = "float(0)";
}
if (dataType.equals("text")) {
dataType = "text(0)";
}
if (dataType.equals("datetime")) {
dataType = "datetime(0)";
}
String[] result = dataType.split("\\(");
result[1] = result[1].toString().substring(0,
result[1].toString().length() - 1);
return result;
}
@RequestMapping(params = "action=DelColumn", method = RequestMethod.POST)
public void DelColumn(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String column = request.getParameter("column");
String tableName = request.getParameter("table");
if (Service.getDatabaseService().ExecuteSQL(
"alter table `" + tableName + "` drop column `" + column
+ "`;")) {
out.write("{status:true}");
} else {
out.write("{status:false}");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
@RequestMapping(params = "action=AlterTable", method = RequestMethod.POST)
public void AlterTable(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String tableColumn=request.getParameter("table");
String tableName=request.getParameter("tableName");
String oldTableName=request.getParameter("oldTableName");
JSONArray jsonarray = JSONArray.fromObject(tableColumn);
List<TableColumn> tableList = (List<TableColumn>) JSONArray.toCollection(jsonarray, TableColumn.class);
String TableRenameSQL="alter table `" + oldTableName + "` rename `" + tableName + "`;";
if(Service.getDatabaseService().ExecuteSQL(TableRenameSQL)&&Service.getDatabaseService().ExecuteSQL(getAlertSQL(tableList,tableName))){
out.write("{status:true}");
}else{
out.write("{status:false}");
}
}catch(Exception e){
e.printStackTrace();
}
}
public String getAlertSQL(List<TableColumn> res, String tableName) {
List<TableColumn> updateRes = new ArrayList<TableColumn>();
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SpringMVC.zip (79个子文件)
SoftwareConfig
bin
META-INF
Spring
SpringDataSource.xml 3KB
SpringContext.xml 1023B
com
rabbitsoft
dao
DataBaseDao.class 857B
impl
DataBaseDaoImpl.class 6KB
model
ColumnProperties.class 1KB
TableColumn.class 2KB
Table.class 619B
controller
CommonController.class 5KB
DataBaseController.class 16KB
BaseController.class 774B
service
manager
ServiceManager.class 845B
DataBaseService.class 869B
impl
DataBaseServiceImpl.class 2KB
util
Generate.class 4KB
WebContent
Css
style.css 2KB
META-INF
context.xml 860B
MANIFEST.MF 39B
Pages
Login.jsp 1KB
WEB-INF
web.xml 2KB
lib
dom4j-1.6.1.jar 307KB
commons-collections-3.2.1.jar 562KB
commons-beanutils.jar 184KB
log4j-1.2.16.jar 470KB
standard.jar 287KB
org.springframework.aop-3.1.0.RC1.jar 324KB
org.springframework.expression-3.1.0.RC1.jar 172KB
guava-14.0.1.jar 2.09MB
org.springframework.web.servlet-3.1.0.RC1.jar 550KB
org.springframework.jdbc-3.1.0.RC1.jar 392KB
json-lib-2.2.3-jdk15.jar 145KB
org.springframework.asm-3.1.0.RC1.jar 52KB
org.springframework.transaction-3.1.0.RC1.jar 241KB
javax.servlet.jar 96KB
jstl.jar 20KB
commons-logging.jar 59KB
aspectjweaver.jar 1.47MB
lambdaj-2.3.jar 126KB
ezmorph-1.0.4.jar 84KB
org.springframework.web-3.1.0.RC1.jar 526KB
json-lib-ext-spring-1.0.jar 5KB
commons-pool.jar 61KB
org.springframework.orm-3.1.0.RC1.jar 369KB
aopalliance.jar 4KB
commons-fileupload-1.2.2.jar 58KB
commons-io.jar 82KB
commons-dbcp.jar 119KB
RabbitBeanHelper.jar 33KB
jspsmartupload.jar 12KB
org.springframework.core-3.1.0.RC1.jar 429KB
org.springframework.beans-3.1.0.RC1.jar 573KB
commons-lang.jar 237KB
jxl.jar 709KB
org.springframework.context-3.1.0.RC1.jar 788KB
Views
desktop.jsp 1KB
Scripts
Custom
DMView.js 23KB
Framework
Rabbit-Calendar.js 8KB
lib
Rabbit-Core.js 13KB
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 323B
org.eclipse.wst.common.component 487B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 491B
org.eclipse.jdt.core.prefs 357B
src
META-INF
Spring
SpringDataSource.xml 3KB
SpringContext.xml 1023B
com
rabbitsoft
dao
DataBaseDao.java 627B
impl
DataBaseDaoImpl.java 4KB
model
TableColumn.java 1KB
ColumnProperties.java 952B
Table.java 425B
controller
DataBaseController.java 14KB
CommonController.java 3KB
BaseController.java 498B
service
manager
ServiceManager.java 612B
DataBaseService.java 635B
impl
DataBaseServiceImpl.java 1KB
util
Generate.java 3KB
.project 1011B
.classpath 639B
build
classes
共 79 条
- 1
猎人日记
- 粉丝: 31
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip
- 基于C++/Qt实现的井字棋游戏
- 基于 Python 编程语言的 Web 框架Django
- Python和Flask实现的基于体检数据的城市公共健康可视分析系统源码+使用说明.zip
- 基于python实现的华为智慧工地-安全帽检测
- buck-boost_2023-12-16_12-12-13.eprj
- 后端开发关于数据库和API开发的介绍
- 机器学习和数据挖掘课程设计-米其林餐厅数据挖掘管理系统源码+使用文档说明.zip
- html html html展示我与ai的对化
- 数据结构课程设计-全国交通出行咨询模拟系统C语言实现源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页