数据表管理项目Servlet

package com.runqianapp.tableManager.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONException;
import org.json.JSONObject;

import com.runqian.report4.usermodel.IReport;
import com.runqianapp.dataManager.DataManager;
import com.runqianapp.tableManager.TableManager;
/**
 * 数据表管理servlet
 *
 * 处理数据表管理所有的前段请求,包括:
 *  --检查表是否存在
 *  --创建新表
 *  --获取表结构信息
 *  --检查字段是否存在
 *  --表增加新字段
 *  --删除字段
 *  --修改字段、
 *  --获取此数据库支持的所有数据类型名称 
 */
public class TableManagerServlet extends HttpServlet{
	
	/**判断表是否已存在*/
	private static final String TABLEEXIST = "tableExist"; 
	/**修改表名*/
	private static final String RENAMETABLE = "renameTable";
	/**创建表*/
	private static final String CREATETABLE = "createTable";
	/**删除表*/
	private static final String DELETETABLE = "deleteTable";
	/**获得表的结构信息*/
	private static final String GETTABLEINFO = "getTableInfo";
	/**判断字段是否已经存在*/
	private static final String COLUMNEXIST = "columnExist";
	/**表增加新字段*/
	private static final String ADDCOLUMN = "addColumn";
	/**删除字段*/
	private static final String DROPCOLUMN = "dropColumn";
	/**修改字段定义*/
	private static final String MODIFYCOLUMN = "modifyColumn";
	/**获取此数据库支持的所有数据类型名称*/
	private static final String GETTYPENAME = "getTypeName";
	/**修改表数据*/
	private static final String MODIFYDATA = "modifyData";
	/**
	 * get方式的请求转交给post的方式处理
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	/**
	 * 处理前端所有请求
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		String action = request.getParameter("action");
		String tableName = request.getParameter("tableName");		//得到数据表名参数
		String columnName = request.getParameter("columnName");
		/**声明数据表管理类对象*/
		TableManager tableManager = new TableManager();
		JSONObject jsResult = new JSONObject();
		if(TABLEEXIST.equals(action)){
			//调用判断表是否存在的方法
			boolean result = tableManager.hasTable(tableName);
			out.write(result+"");
			out.close();			
		}else if(RENAMETABLE.equals(action)){
			//调用修改表名的方法
			String srcTableName = request.getParameter("srcTableName");     //得到源表名参数
			String newTableName = request.getParameter("newTableName");     //得到新表名参数
			StringBuffer resultMessage = new StringBuffer();
			boolean result = false;
			try{
				result = tableManager.renameTable(srcTableName, newTableName);
				resultMessage.append("{\"result\":\"").append(result).append("\"}");
			}catch(Exception e){
				e.printStackTrace();
				resultMessage.append("{\"result\":\"").append(result).append("\",")
				.append("\"errorMessage\":\"").append(e.getMessage()).append("\"}");
			}
			out.write(resultMessage.toString());
			out.close();				
		}else if(CREATETABLE.equals(action)){
			//调用创建表的方法
			String jsonMessage = request.getParameter("tableInfo");         //得到表信息字符串
			StringBuffer resultMessage = new StringBuffer();
			boolean result = false;
			try{
				jsResult = new JSONObject(jsonMessage);                     //将表信息封装成json对象                   
				result = tableManager.createTable(jsResult);
				resultMessage.append("{\"result\":\"").append(result).append("\"}");		
			}catch(Exception e){
				e.printStackTrace();
				resultMessage.append("{\"result\":\"").append(result).append("\",")
				.append("\"errorMessage\":\"").append(e.getMessage()).append("\"}");
			}
			out.write(resultMessage.toString());
			out.close();
		}else if(DELETETABLE.equals(action)){
			//调用删除表的方法	
			String deleteTableName = request.getParameter("deleteTableName");//得到要删除表表名参数
			StringBuffer resultMessage = new StringBuffer();
			boolean result = false;
			try{
				result = tableManager.dropTable(deleteTableName);
				resultMessage.append("{\"result\":\"").append(result).append("\"}");	
			}catch(Exception e){
				e.printStackTrace();
				resultMessage.append("{\"result\":\"").append(result).append("\",")
				.append("\"errorMessage\":\"").append(e.getMessage()).append("\"}");
			}
			out.write(resultMessage.toString());
			out.close();
		}else if(GETTABLEINFO.equals(action)){
			//获取表结构信息
			jsResult = tableManager.getTableInfo(tableName);
			out.write(jsResult.toString());												//结果添加到响应信息
			out.close();
		}else if(COLUMNEXIST.equals(action)){
			//判断字段是否存在调用的方法
			boolean isExist = true;
			try {
				isExist = tableManager.columnExist(tableName, columnName);				//调用判断字段是否存在的方法		
			} catch (SQLException e) {
				e.printStackTrace();
			} 			
			out.write(isExist+"");														//结果添加到响应信息
			out.close();
		}else if(ADDCOLUMN.equals(action)){
			//表中增加字段调用的方法
			/**结果信息*/
			StringBuffer result = new StringBuffer();
			/**字段信息*/
			JSONObject columnInfoObj = null;
			/**是否成功增加字段,成功为true*/
			boolean isAdd = false;
			try {
				//System.out.println(request.getParameter("columnInfo"));
				columnInfoObj = new JSONObject(request.getParameter("columnInfo"));		//请求中获取字段信息
				isAdd = tableManager.addColumn(tableName, columnInfoObj);				//调用增加字段方法
				result.append("{");
				result.append("\"result\":\""+isAdd+"\"");
				result.append("}");
			} catch (JSONException e) {
				result.append("{");
				result.append("\"result\":\""+isAdd+"\""+",");
				result.append("\"errorMessage\":\""+e.getMessage()+"\"");
				result.append("}");
				e.printStackTrace();
			} catch (SQLException e) {
				result.append("{");
				result.append("\"result\":\""+isAdd+"\""+",");
				result.append("\"errorMessage\":\""+e.getMessage()+"\""+",");
				result.append("\"errorCode\":\""+e.getErrorCode()+"\""+",");
				result.append("\"sqlstate\":\""+e.getSQLState()+"\"");
				result.append("}");
				e.printStackTrace();
			}				
			out.write(result.toString());														//结果添加到响应信息
			out.close();
		}else if(DROPCOLUMN.equals(action)){
			//表中删除字段调用的方法
			/**是否成功删除字段,成功为true*/
			boolean idDrop = false;
			/**结果信息*/
			StringBuffer result = new StringBuffer();
			try {
				idDrop = tableManager.dropColumn(tableName, columnName);						//调用删除字段方法
				result.append("{");
				result.append("\"result\":\""+idDrop+"\"");
				result.append("}");
			} catch (SQLException e) {
				result.append("{");
				result.append("\"result\":\""+idDrop+"\""+",");
				result.append("\"errorMessage\":\""+e.getMessage()+"\""+",");
				result.append("\"errorCode\":\""+e.getErrorCode()+"\""+",");
				result.append("\"sqlstate\":\""+e.getSQLState()+"\"");
				result.append("}");
				e.printStackTrace();
			}       				
			//System.out.println(result.toString());
			out.write(result.toString());														//结果添加到响应信息
			out.close();
		}else if(MODIFYCOLUMN.equals(action)){
			//修改字段定义调用的方法
			/**结果信息*/
			StringBuffer result = new StringBuffer();
			/**字段信息*/
			JSONObject columnInfoObj = null;
			/**修改字段是否成功,成功true*/
			boolean isModify = false;
			try {
				columnInfoObj = new JSONObject(request.getParameter("columnInfo"));				//请求中拿到字段信息
				isModify = tableManager.modifyColumn(tableName, columnInfoObj);					//调用修改字段方法
				result.append("{");
				result.append("\"result\":\""+isModify+"\"");
				result.append("}");
			} catch (JSONException e) {
				result.append("{");
				result.append("\"result\":\""+isModify+"\""+",");
				result.append("\"errorMessage\":\""+e.getMessage()+"\"");
				result.append("}");
				e.printStackTrace();
			} catch (SQLException e) {
				result.append("{");
				result.append("\"result\":\""+isModify+"\""+",");
				result.append("\"errorMessage\":\""+e.getMessage()+"\""+",");
				result.append("\"errorCode\":\""+e.getErrorCode()+"\""+",");
				result.append("\"sqlstate\":\""+e.getSQLState()+"\"");
				result.append("}");
				e.printStackTrace();
			}			
			out.write(result.toString());														//结果添加到响应信息
			out.close();
		}else if(GETTYPENAME.equals(action)){
			//获取此数据库支持的所有数据类型名称调用此方法
			/**数据库支持的所有数据类型名称*/
			String TypeNames = "";
			try {
				TypeNames = tableManager.getTypeName();										//调用获取此数据库支持的所有数据类型名称方法
			} catch (SQLException e) {
				e.printStackTrace();
			}								
			out.write(TypeNames);
			out.close();
		} else if ("modifyData".equals(action)) {
	          DataManager dm = new DataManager("mis2datasource", tableName);
	          IReport report = dm.createReport();
	          request.getSession().setAttribute("reportDefine", report);
	          request.getRequestDispatcher("/mis2/operateTable/showData.jsp").forward(request, response);
	        }	
	}
	
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值