如何直接在浏览器内运行SQL命令
程序员文章站
2022-03-09 21:25:02
本文示范了如何用一个java servlet、一个(sun企业级应用的首选)页面和一个静态java类构造出一个sql网关应用。利用这个应用,你可以直接在内执行sql命令,浏览器将把sql命令提交...
本文示范了如何用一个java servlet、一个(sun企业级应用的首选)页面和一个静态java类构造出一个sql网关应用。利用这个应用,你可以直接在内执行sql命令,浏览器将把sql命令提交给远程服务器上的,然后返回结果。
如果你正在使用isp(internet service provider)提供的数据库,可能已经熟悉sql网关应用的概念了。有的isp会提供一个操作数据库的html页面,就象本文提供的网关应用一样。如果isp没有提供这样的界面,你可以把本文的程序上载到服务器,以后要访问isp服务器上的数据库就很方便了。
sql网关应用不仅可以用于开发过程,而且还可以直接提供给比较熟悉系统的最终用户使用。当然,允许最终用户直接在数据库上运行sql命令会带来一些安全隐患,应当慎重考虑。
本文要求读者具备一定的java、servlet、jsp(sun企业级应用的首选)和数据库的基础知识,如果要运行本文的程序,还要有一个servlet/jsp(sun企业级应用的首选)服务器和数据库服务器。在下面的说明中,我们要使用的是tomcat(一个很好用的jsp运行平台) 4.0和mysql(和php搭配之最佳组合),但它应该也能在其他jsp(sun企业级应用的首选)/servlet容器中运行;如果你要改用mysql(和php搭配之最佳组合)之外的其他数据库,只要提供一个适当的驱动程序,然后修改数据库连接字符串就可以了。
一、用户界面
图1就是本文sql网关的用户界面。在这个界面中,sql网关已经执行了一条sql命令并返回了结果。
图1:sql网关的用户界面
从图1可以看出,页面底部的一条信息显示出最近执行的sql命令影响的行数。如果sql命令是一个select语句,当select语句执行成功,页面底部将用html表格显示出查询结果,如图二所示。
图2:html表格显示出查询结果集
当然,如果sql命令执行失败,sql网关将返回异常信息。
二、设计jsp(sun企业级应用的首选)页面
在jsp(sun企业级应用的首选)页面中,我们首先放入一个scriptlet,它的功能是从session对象提取两个属性:
第一个属性sqlstatement 表示sql命令字符串,第二个属性message 是包含结果信息的字符串。如果这两个属性的值是null,则表示它们尚未被设置,我们把sqlstatement和message变量设置成空字符串。
jsp(sun企业级应用的首选)页面还有一个html表单,html表单包含一个文本区域(textarea)和一个“执行”按钮。
表单中的文本区域用来输入sql命令。我们将sqlstatement变量的值作为文本区域的默认内容,文本区域的大小是宽60字符、高8行。当jsp(sun企业级应用的首选)页面第一次运行时,这个文本区域的内容为空。如果用户点击文本区域下面的“执行”按钮,jsp(sun企业级应用的首选)页面把表单内容提交给sqlgatewayservlet(稍后再详细介绍)。
jsp(sun企业级应用的首选)页面底部的表格显示出message字符串的内容。如前所述,message的内容是运行sql命令的结果。
如果你正在使用isp(internet service provider)提供的数据库,可能已经熟悉sql网关应用的概念了。有的isp会提供一个操作数据库的html页面,就象本文提供的网关应用一样。如果isp没有提供这样的界面,你可以把本文的程序上载到服务器,以后要访问isp服务器上的数据库就很方便了。
sql网关应用不仅可以用于开发过程,而且还可以直接提供给比较熟悉系统的最终用户使用。当然,允许最终用户直接在数据库上运行sql命令会带来一些安全隐患,应当慎重考虑。
本文要求读者具备一定的java、servlet、jsp(sun企业级应用的首选)和数据库的基础知识,如果要运行本文的程序,还要有一个servlet/jsp(sun企业级应用的首选)服务器和数据库服务器。在下面的说明中,我们要使用的是tomcat(一个很好用的jsp运行平台) 4.0和mysql(和php搭配之最佳组合),但它应该也能在其他jsp(sun企业级应用的首选)/servlet容器中运行;如果你要改用mysql(和php搭配之最佳组合)之外的其他数据库,只要提供一个适当的驱动程序,然后修改数据库连接字符串就可以了。
一、用户界面
图1就是本文sql网关的用户界面。在这个界面中,sql网关已经执行了一条sql命令并返回了结果。
图1:sql网关的用户界面
从图1可以看出,页面底部的一条信息显示出最近执行的sql命令影响的行数。如果sql命令是一个select语句,当select语句执行成功,页面底部将用html表格显示出查询结果,如图二所示。
图2:html表格显示出查询结果集
当然,如果sql命令执行失败,sql网关将返回异常信息。
二、设计jsp(sun企业级应用的首选)页面
在jsp(sun企业级应用的首选)页面中,我们首先放入一个scriptlet,它的功能是从session对象提取两个属性:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"><% string sqlstatement=(string)session.getattribute("sqlstatement"); if (sqlstatement == null) sqlstatement = ""; string message = (string) session.getattribute("message"); if (message == null) message = "";%> |
第一个属性sqlstatement 表示sql命令字符串,第二个属性message 是包含结果信息的字符串。如果这两个属性的值是null,则表示它们尚未被设置,我们把sqlstatement和message变量设置成空字符串。
jsp(sun企业级应用的首选)页面还有一个html表单,html表单包含一个文本区域(textarea)和一个“执行”按钮。
<form action="../servlet/test.sqlgatewayservlet" method="post"><b>sql命令:</b><br><textarea name="sqlstatement" cols=60 rows=8><%=sqlstatement%></textarea><br><br><input type="submit" value="执行"></form> |
表单中的文本区域用来输入sql命令。我们将sqlstatement变量的值作为文本区域的默认内容,文本区域的大小是宽60字符、高8行。当jsp(sun企业级应用的首选)页面第一次运行时,这个文本区域的内容为空。如果用户点击文本区域下面的“执行”按钮,jsp(sun企业级应用的首选)页面把表单内容提交给sqlgatewayservlet(稍后再详细介绍)。
jsp(sun企业级应用的首选)页面底部的表格显示出message字符串的内容。如前所述,message的内容是运行sql命令的结果。
<b>sql命令执行结果:</b><br><table cellpadding="5" border="1"><%=message%></table> |
上一篇: oracle事务的提交机制浅析
下一篇: Oracle中Over函数的使用介绍