在页面上执行sql语句,首先在页面上顶一个文本域,让用户输入需要执行的sql语句。
html代码如下:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
</head>
<body>
<div id ="defaultButtonBar" align="right" style="margin-right: 20px">
<button id="add" value="执行" onclick="find()" style="width: 100px;height: 30px;">执行</button>
</div> 
<div> 
输入的sql:<br><textarea id="sql" rows="6" style="width: 98%"></textarea>
</div>
<div id="divSql" style="color: red;height:400 "> <text id="str"></text></div>
</body>
</html>
然后最重要的是如何获取选中的文本并且让其在后台执行sql并返回信息给前台。
js代码如下:
/**
 * 执行鼠标选中的文本(也就是sql语句)
 */
function find(){
	   var selectValue=null;
	   var sqlval=null;
	   if (document.selection){
		       selectValue=document.selection.createRange().text;//验证IE浏览器
         } else if (window.getSelection){
    	       // selectValue=window.getSelection();//其他浏览器
    	       var obj = document.getElementById("sql"); 
    	       var selstart = obj.selectionStart; //文字浮标选择的开始位置 
    	       var selend = obj.selectionEnd; //文字浮标选择的结束位置 
    	       selectValue= obj.value.substring(selstart,selend);
       }
	  if(selectValue==null||selectValue==""){
	    var sqlval=document.getElementById("sql").value.toLocaleLowerCase();
	  }else{
		    sqlval=selectValue;
	  }
	  if(sqlval.indexOf("select")!=-1&&sqlval.indexOf("create")==-1){
	   sqlval = encodeURI(sqlval);
	   $.ajax({
			  type:‘POST‘,
			  url:‘findColumn‘,
			  data:"sqlval="+sqlval,
			  dataType:‘text‘,
			  contentType:‘application/x-www-form-urlencoded; charset=utf-8‘,
			  success: function(data){
				     var dataJson=eval(‘(‘ +data+ ‘)‘);
				     $("#str").text("");
				       $(‘#mytable‘).omGrid({     
				           height : 400,
				           limit:0,
				           colModel :dataJson,
				           //contentType:‘application/x-www-form-urlencoded; charset=utf-8‘,
				           dataSource:‘findData.action?sqlval=‘+sqlval 
				     });
				   }
		     , error:function(XMLResponse){
			        document.getElementById("tab").innerHTML="";
			        document.getElementById("tab").innerHTML=‘<table id="mytable"></table>‘;
		 		    var str=XMLResponse.responseText;
		 		    var str1=str.substring(str.indexOf("java"),str.lastIndexOf("</pre>"));
		 		    $("#str").text("");// 清空数据                
		 		    $("#str").append(str1);
			   }
		  });
  }else{
		    $.ajax({
			    type:‘POST‘,
			    url:‘updateAndDelete‘,
			    data:"sqlval="+sqlval,
			    dataType:‘text‘,
			    limit:0,
			    contentType:‘application/x-www-form-urlencoded; charset=utf-8‘,
			    success: function(data){
			      var dataJson=eval(‘(‘ +data+ ‘)‘);
			      $("#str").text("");
			         if(dataJson.update==‘0002‘){
				           alert("更新成功");
			         }else if(dataJson.del==‘0001‘){
				           alert("删除成功");
			         }else if(dataJson.insert==‘0003‘){
				           alert("插入数据成功");
			         }else if(dataJson.drop==‘0004‘){
				           alert("删除表成功");
      else if(dataJson.create==‘0005‘){
				           alert("创建表成功");
			         }else{
				           alert("系统出错");
			         }
		     },error:function(XMLResponse){
		 		      var str=XMLResponse.responseText;
		 		      var str1=str.substring(str.indexOf("java"),str.lastIndexOf("</pre>"));
		 		      $("#str").text("");// 清空数据                
		 		      $("#str").append(str1);
		 	     }
		    });
	  }
}
关于后台代码这里就不展示了,无非就是执行前台传过来的sql语句并返回一些相应的信息
原文:http://www.cnblogs.com/zhilongblogs/p/4021877.html