关于在页面上执行sql语句

在页面上执行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语句并返回一些相应的信息

时间: 2024-10-08 03:57:16

关于在页面上执行sql语句的相关文章

Yii框架,在页面输出执行sql语句,方便调试

1.下载yiidebugtb,并且放入到 application.extensions.yiidebugtb 目录 2.修改main.php,加入如下代码: 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'error, warning,trace', ), // 以下是新加 array( // configuration for

通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷

原文:通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷 通过MyEclipse操作数据库,执行sql语句使我们不用切换多个工具,直接工作,方便快捷.效果如下: 步骤1:通过MyEclipse中的window->show View->other 调出.DB浏览器. 步骤2: 步骤3:输入db,然后选择DB Brower. 步骤4:单击空白处右键. 步骤5:选择相应的数据库类型. 步骤6: Driver name :填上自己需要的名字 Connection name :jdbc:

PDO中执行SQL语句的三种方法

在PDO中,我们可以使用三种方式来执行SQL语句,分别是 exec()方法,query方法,以及预处理语句prepare()和execute()方法~大理石构件来图加工 在上一篇文章<使用PDO构造函数连接数据库及DSN详解>中,我们介绍了如何使用构造函数连接数据库和DSN的详解,那么我们这篇文章跟大家介绍在PDO中执行SQL语句的三种方式,下面我们将一一介绍! 第一种方法:exec()方法 exec()方法返回执行SQL 语句后受影响的行数,其语法格式如下: 1 int PDO::exec(

EntityFramework执行SQL语句

在EF中执行Sql语句. using (var context = new EFRecipesEntities()) { string sql = @"insert into Chapter3.Payment(Amount, Vendor) values (@Amount, @Vendor)"; var args = new DbParameter[] { new SqlParameter { ParameterName = "Amount", Value = 99

在mybatis执行SQL语句之前进行拦击处理

比较适用于在分页时候进行拦截.对分页的SQL语句通过封装处理,处理成不同的分页sql. 实用性比较强. import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Properties; import org.apache.ibatis.e

DB操作-用批处理执行Sql语句

用批处理在命令行状态下调用查询分析器来执行这个sql文件里的语句.下面就是sqlserver帮助里对于查询分析器(isqlw)命令行参数的解释:isqlw 实用工具(SQL 查询分析器)使您得以输入 Transact-SQL 语句.系统存储过程和脚本文件.通过设置快捷方式或创建批处理文件,可以启动预配置的 SQL 查询分析器. 1.语法 isqlw     [-?] |      [          [-S server_name[instance_name]]          [-d da

使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作 Hive Impala HBase HiveQL 大数据 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作 〇.摘要 一.基础环境 二.数据存储在HBase中,使用Hive执行SQL语句 Ⅰ.创建Hive外部表 Ⅱ.从HBase读 Ⅲ.向HBase写 三.数据存储在HBase中,使用Impala执行SQL语句 Ⅰ.从HBase读 Ⅱ.向HBase写 四.综上所述 〇.摘要 Hive是基于Hadoop

执行sql语句后的数据处理api

链接上mysql之后可以使用一些api对数据库进行一些操作 1 int mysql_query(MYSQL * connection, const char * query) 这是执行sql语句的函数,成功的话返回0 1.不返回数据的sql语句 对于update,delete,insert等操作 1 my_ulonglong mysql_affected_rows(MYSQL *connection); 这个函数返回受到影响的行数 2.发现插入的内容 1 select LAST_INSERT_I

【数据库_Postgresql】实体类映射问题之不执行sql语句

后台controller到dao都没问题,前台页面接收的是一个实体类对象,在service层接收的也是对象,传入mapper里面的也是对象,没有用map,但是打印台却不执行sql语句,也没有明显错误提示. 最后发现原因所在,贴出原来的sql语句和更改后成功执行的sql语句,可以看出别名和if test判断去除之后便可以执行.具体是因为别名还是if test有兴趣的朋友可以测试一下,我就不试了. 原来的代码 <select id="queryByPrimaryKey" parame