EXT 项目中的一个模块
JS================/* * @First ext program @param sql query @param SQL 查询工具 */Ext.onReady(function(){/* * 定义gridpanel参数值 */var columnFields = new Array();var dataArr = new Array();var headerArr = new Array();var grid = new Ext.grid.GridPanel({title : "返回SQL动态数据库",cm : new Ext.grid.ColumnModel(headerArr),store :new Ext.data.SimpleStore({data : dataArr,fields : columnFields}),region : 'center',closable : true,layout : 'fit',viewConfig : {forceFit : false},stripeRows : true,autoScroll : true});var panel = new Ext.Panel({title : '自定义SQL查询',frame : true,bodyStyle : {paddingTop : '3px'},height : 180,layout : 'fit',region : 'north',collapsible : true, // 右上角的伸缩按钮buttons:[ { text:'查询', iconCls : 'search', tooltip : '查询数据库' ,handler:function() { Ext.Msg.wait('正在处理返回数据...'); Ext.Ajax.request({url : 'sqlQuery!getSqlQueryList.action',method : "post",params : {sql : Ext.getDom('sqltext').value},success : function(dataAggregate) {/* * 清空数组 重新赋值 展示 */columnFields.splice(0);dataArr.splice(0);headerArr.splice(0);/* * 服务器返回数据 */var arrayData = dataAggregate.responseText;var result = Ext.decode(dataAggregate.responseText);var num = result.length;/* * 处理进度条 */if(num == 0){Ext.MessageBox.alert('查询记录为空!');}else if(num >= 1){Ext.Msg.updateProgress(1);Ext.Msg.hide();}/* * 解析result数据 */var ch = '';var dataSt = '';for (var i = 0; i < num; i++) {var dt = new Array();for (var j in result) {dt.push(result);}dataArr.push(dt);}for (var i = 0; i < 1; i++) {for (var j in result) {columnFields.push(j); // 取列信息var col = {};col.header = j;col.dataIndex = j;col.sortable = true;headerArr.push(col);}}grid.reconfigure(new Ext.data.SimpleStore({data : dataArr,fields : columnFields}), new Ext.grid.ColumnModel(headerArr));},failure : function(dataAggregate) {alert('连接失败,请联系管理员,检查数据库连接情况或网络!' + dataAggregate.responseText);}}); } }, { text:'重写', tooltip : '橡皮擦', handler:function() { Ext.getDom('sqltext').value=''; } } ], items: [ { id:'sqltext', xtype:'textarea', width:'99%' } ]});new Ext.Viewport({layout:'border',items:})});//select id,xlmc,dydj from dm_xl fetch first 2 rows only===================== servicepackage com.suypower.xssystem.service;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;import com.suypower.xssystem.dao.dbconn;public class sqlQueryService { public static List getSqlQueryService(String sql)throws Exception { final List list = new ArrayList();// 有没有对此封装调用 日后修改代码 同步 Connection con = new dbconn().getConnection(); Statement stmt = con.createStatement(); /* * 查询SQL */// if((sql.indexOf("select") + sql.indexOf("delete") + sql.indexOf("update") + sql.indexOf("insert")) == -4) { JSONObject obj = new JSONObject(); list.add(obj.accumulate("非法SQL","非法SQL")); }else if(sql.startsWith("select")) { ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { JSONObject obj = new JSONObject(); int columnNum = rs.getMetaData().getColumnCount(); for(int i =1;i<=columnNum;i++) { System.out.println("列名:"+rs.getMetaData().getColumnName(i)+"列值:"+rs.getString(i)); obj.accumulate(rs.getMetaData().getColumnName(i),rs.getString(i)); } list.add(obj); } }else if(sql.startsWith("update")) { JSONObject obj = new JSONObject(); stmt.executeUpdate(sql); int updateNum = stmt.getUpdateCount();// System.out.println("更新"+updateNum+"个"); list.add(obj.accumulate(String.valueOf(updateNum),String.valueOf(updateNum))); }else if(sql.startsWith("delete")) { JSONObject obj = new JSONObject(); stmt.executeUpdate(sql); int updateNum = stmt.getUpdateCount();// System.out.println("删除"+updateNum+"个"); list.add(obj.accumulate(String.valueOf(updateNum),String.valueOf(updateNum))); }else if(sql.startsWith("insert")) { JSONObject obj = new JSONObject(); stmt.executeUpdate(sql); int updateNum = stmt.getUpdateCount();// System.out.println("插入"+updateNum+"个"); list.add(obj.accumulate(String.valueOf(updateNum),String.valueOf(updateNum))); } return list; }}=========actionpackage com.suypower.xssystem.action;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import com.suypower.xssystem.bean.ExtGridBean;import com.suypower.xssystem.service.sqlQueryService;public class SqlQueryAction { private static final String userResult = "user"; private String result; private String sql; public String getSqlQueryList() { List list = new ArrayList(); JSONObject obj = new JSONObject(); try { list = sqlQueryService.getSqlQueryService(sql); } catch (Exception e) {// System.out.println("=============================SqlQueryAction Exceptoin=========================="); String getMessageException = e.getMessage();// System.out.println("SQLgetMessageException"+getMessageException+"\n"); list.add(obj.accumulate(getMessageException,getMessageException)); }// this.setResult(JSONArray.fromObject(list).toString()); this.setResult(JSONArray.fromObject(list).toString()); System.out.println("result="+result); return userResult; } /* * get set method */ public String getResult() { return result; } public void setResult(String result) { this.result = result; } public static String getUserResult() { return userResult; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; }}================jsp<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <base href="<%=basePath%>"> <title></title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <link rel="stylesheet" type="text/css" href="ext-2.2/resources/css/ext-all.css"> <link rel="stylesheet" type="text/css" href="css/ext-commons.css"> <script type="text/javascript" src="ext-2.2/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext-2.2/ext-all.js"></script> <script type="text/javascript" src="ext-2.2/source/locale/ext-lang-zh_CN.js"></script> <script type="text/javascript" src="js/ext-monthField.js"></script> <script type="text/javascript" src="js/util.js"></script> <script type="text/javascript" src="js/ext-commons.js"></script> <script type="text/javascript" src="js/sqlQuery.js"></script></head><body><div id="sQ"></div></body></html>
页:
[1]