手机站
网通分站
电信主站
密 码:
用户名:
热门关键字:  虚拟主机  cn域名  域名注册  非法  seo
当前位置 : 主页>程序设计>Java技术>列表

如何直接在浏览器内运行SQL命令

来源:互联网 作者:west263.com 时间:2008-02-23 点击:
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


HttpSession session = request.getSession();

 session.setAttribute("message", message);

 session.setAttribute("sqlStatement", sqlStatement);


  接下来,最后两个语句创建一个RequestDispatcher,并转发request和response对象给前文介绍的JSP页面:

RequestDispatcher dispatcher =

     getServletContext().getRequestDispatcher(

         "/sql/sql_gateway.jsp");

 dispatcher.forward(request, response);


  四、编写工具类

  下面来看看工具类SQLUtil的代码:

package test;

import java.sql.*;

public class SQLUtil{


  SQLUtil类包含一个getHtmlRows静态方法,前面的Servlet正是通过调用该方法将结果集格式化成HTML表格。getHtmlRows的输入参数是一个ResultSet对象,其返回值是一个String对象,这个String对象的内容是记录集的所有列表题和行的HTML代码。为了构造出这样一个String对象,getHtmlRows声明了一个名为htmlRows的StringBuffer对象,然后在方法执行过程中向这个StringBuffer对象追加数据。在getHtmlRows方法的末尾,我们用toString方法将StringBuffer的内容转换成String,最后将这个String返回给Servlet:

public static synchronized String getHtmlRows(ResultSet results)

throws SQLException{

    StringBuffer htmlRows = new StringBuffer();

    ResultSetMetaData metaData = results.getMetaData();

    int columnCount = metaData.getColumnCount();

    // 将记录集中列的名称作为HTML表格列的标题

    htmlRows.append("<tr>");

    for (int i = 1; i <= columnCount; i  )

        htmlRows.append("<td><b>"   metaData.getColumnName(i)   "</td>");

    htmlRows.append("</tr>");

    // 对于结果集中的每一行...

    while (results.next()){

        htmlRows.append("<tr>");

        // 将该行中的每一个列转换成一个表格单元

        for (int i = 1; i <= columnCount; i  )

            htmlRows.append("<td>"   results.getString(i)   "</td>");

    }

    htmlRows.append("</tr>");

    return htmlRows.toString();

}


  为了获得记录集对象的列标题,getHtmlRows方法利用ResultSet的getMetaData方法来创建一个ResultSetMetaData对象,ResultSetMetaData对象包含了有关记录集的描述信息,例如列的数量、列的名称可以分别调用ResultSetMetaData的getColumnCount和getColumnName方法获得。

  为了提取记录集的数据,getHtmlRows方法利用一个嵌套的循环,即while循环里面嵌套的for循环,来提取每一个行里面每一个列的值。在循环之内,我们用记录集的getString方法来获取各个字段的值,不管字段值原来的类型是什么,getString方法都会将它转换成String。

  请注意这个方法的声明中带有synchronized关键词,这是为了避免两个或两个以上的Servlet线程同时执行该方法。

  下载本文的代码

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

共3页: 上一页 [1] [2] 3 下一页
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名
注册