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[i]) {
dt.push(result[i][j]);
}
dataArr.push(dt);
}
for (var i = 0; i < 1; i++) {
for (var j in result[i]) {
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:[panel,grid]
})
});
// select id,xlmc,dydj from dm_xl fetch first 2 rows only
===================== service
package 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;
}
}
=========action
package 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>
分享到:
相关推荐
"Ext项目小框架介绍源码"可能是一个简单的示例项目,展示了如何使用Ext JS来搭建一个基本的Web应用。这个项目包含以下几个关键部分: 1. **index.html**:这是项目的入口点,通常包含页面的基本结构和引用的外部...
EXT4.0项目源码是Linux操作系统中EXT4文件系统的一个重要版本的源代码,它在文件系统的性能、稳定性和可靠性方面进行了优化。EXT4,全称“Fourth Extended File System”,是EXT3的后续,旨在解决EXT3在处理大量小...
在"简单的EXT项目代码"中,我们可以推测这个项目是一个示例,用于展示EXT与Struts框架如何协同工作。Struts是一个Java EE平台上的开源MVC框架,它帮助开发者组织和控制应用程序的业务逻辑,使前端与后端数据交换变得...
标题中的"ext做的一个项目"很可能是指使用EXT JS框架开发的一个Web应用程序项目。EXT JS是一个强大的JavaScript库,专用于构建富客户端的桌面级Web应用。它提供了大量的UI组件,如表格、面板、图表等,以及数据绑定...
在这个"Ext项目实例 js servlet"中,我们将探讨如何将ExtJS与Java Servlet结合,实现前后端的数据交互。 首先,ExtJS的主要组成部分包括: 1. **组件(Components)**:ExtJS 提供了各种各样的组件,如表格、表单...
Ext.Net项目是一个基于.NET框架和JavaScript库Ext JS的Web开发框架。这个项目源码提供了一个完整的实例,适合初学者深入理解和学习Ext.Net的使用。它包括了完整的项目结构、源代码以及相关的数据库,使得开发者可以...
EXT,全称EXT JS,是一种基于JavaScript的富客户端框架,由Sencha公司开发,用于构建交互性强、功能丰富的Web应用...在实际开发中,需要注意代码的模块化和可维护性,遵循最佳实践,以提高代码质量和项目的长期稳定性。
这个"Ext2.0.2经典的一个JS组件带EXT中文手册.rar"文件包含了该版本的ExtJS组件和相关的中文文档,帮助开发者更好地理解和使用这个框架。 1. **EXT中文手册**: 提供的`EXT 中文手册.doc`是ExtJS的中文文档,这...
在Ext 2.2中,各个组件和类通常会形成一个复杂的继承链,使得代码可以重用并保持一致性。类说明图可以帮助开发者理解和跟踪这些关系,从而更有效地进行开发。 标签"Ext框架结构"和"Ext目录结构"分别对应了框架的...
"Spring Hibernate Ext"项目是一个整合了Spring框架、Hibernate ORM(对象关系映射)以及一些扩展功能的项目。这个项目的核心目标是提供一个高效且灵活的开发环境,使得开发者能够更轻松地利用这些技术来构建复杂的...
本项目“企业进销存系统”就是一个典型的例子,它深入实践了EXT与Java MVC模块的融合,为我们提供了宝贵的实战经验。 1. **EXT框架**:EXT是一个基于JavaScript的富客户端框架,主要用于构建桌面级的Web应用。它...
在提供的“ext2中文文档新春版”中,很可能是EXT2版本的相关文档,EXT2是EXT的一个早期版本,可能包含了详细的API文档、教程和示例代码,帮助开发者理解EXT的基本用法和内部机制。通过阅读这些文档,开发者可以了解...
EXT 3.0 是一个基于 JavaScript 的富因特网应用程序(Rich Internet Application, RIA)开发框架,尤其在Web应用程序的用户界面构建方面表现出色。它提供了大量的组件、布局管理和数据绑定功能,使得开发者能够创建...
在这个项目中,"EXTNETBS项目"可能是一个基于Ext.NET的基础项目,包含了必要的配置和示例代码,方便开发者快速启动新项目。 压缩包中的"OA_log.LDF"和"OA.mdf"文件是SQL Server数据库的日志文件和主数据文件。这些...
EXT2是EXT框架的一个重要版本,引入了许多新的组件和特性,如DataView、XTemplate等,进一步增强了框架的能力。 总之,EXT框架为Web开发提供了强大的工具集,涵盖了从DOM操作、事件处理到高级组件和布局管理的...
在本文中,我们将深入探讨GWT_EXT项目的配置全过程,旨在帮助开发者更快速、更容易地理解和实践这一强大的开发工具。 一、环境准备 1. Java开发环境:首先,你需要安装Java Development Kit (JDK),确保版本至少为...
- **版本历史**:Ext2.2 是 Ext 的一个早期版本,相对于后续版本来说,它的功能可能较为有限,但在当时是非常先进的。 - **下载与安装**: - 下载地址:http://extjs.com/downloads - 安装方式:下载解压后,可以...
EXT,全称EXT JS,是一种基于JavaScript的开源前端框架,专为构建富互联网应用程序(RIA)设计。...在实践中遇到问题时,可以查阅EXT的官方文档,参与相关的论坛讨论,或者参考其他EXT项目的源码,以加速学习进程。
"TransManage" 这个文件可能是项目中的一个模块或者组件,可能涉及到了事务管理相关的功能。在EXT.NET中,你可以使用 TreePanel 或者 GridPanel 来展示事务,通过 Store 与服务器端进行数据交互。同时,可能还会有 ...