`
javasee
  • 浏览: 923353 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

J2EE--网页上的简易查询分析器

阅读更多

题记: 这是我第一次写关于计算机专业技术的文章,这篇文章对我来说可是意义非凡啊,呵呵。它是一个记录点,一个我成长过程中的记录点。

       正文:这几天我花了一些课余时间完成了这个小项目,主要实现数据库查询分析器的增删改查功能。页面比较简陋,没有做什么华丽的修饰。只是为了表达出我做这 个网页版数据库查询分析器的具体思路。由于水平有限,有些实现方式可能会略显粗糙,希望大家能提出更好的建议,互相交流学习。

                 项目所达到的效果:在JSP页面中的文本域(页面被一条标尺线分为两半,文本域在上半部分)中输入SQL的增删改查语句,点击提交按钮,页面的下半部分则会输出数据。

                  项目的主要实现步骤如下:

                  1.  在MyEclipse开发环境中导入数据库驱动(我使用的数据库是SQL Server 2005 ,驱动可在微软官网中下载。),具体操作:在项目名下点鼠标右键——》选择Build Path— —》点击add extenal archives— —》找到你放驱动的位置,双击即可。

                 2. 在项目的WEB-ROOT文件夹下创建一个名为:Th.jsp的JSP文件。该JSP页面的代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
          <script. language="javascript">       <!-- 这个javascript函数是用来接收页面文本域的值的。-->

             function getForms(){

             document.forms.submit();

             }
         </script>
  </head>
 
  <body>  <form. name="forms" method="post">
            <center>
            <p>请输入SQL语句:</p> <p><textarea rows="5" cols="45" name="textarea" ></textarea></p>
            <input type="submit" name="submit" value="提交" nclick="getForms()"/>
            </center>
        </form><hr/>
         
         
          <%     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();  //导入数据库驱动
               String url = "jdbc:sqlserver://localhost:1433;DatabaseName=studentinfo";
            
              String name = "XXX";   //name和psw变量是用于存放数据库的用户名和密码的,本文中就用XXX代替
              String psw = "XXX";
             Connection conn = DriverManager.getConnection(url, name, psw);          //获取一个数据库连接
              PreparedStatement pstate = null;           //声明一个用于执行SQL语句的PreparedStatement类型的对象

             ResultSet  rs = null ;             //用于存放查询数据的结果集
            
    
            String sql = request.getParameter("textarea");  //获取文本域中输入的值
            
            int count = 0 ;      //count变量是用来计算修改记录的次数的。
            
            if(sql!=null)           
           {  
                String s =  sql.substring(0,6).toLowerCase();                     //获取sql的前6个字符串,并将它们转化为小写
                if(s.equals("update")||s.equals("insert")||s.equals("delete"))  
                {    pstate = conn.prepareStatement(sql) ;                            //执行SQL语句
                     count = pstate.executeUpdate();
                     System.out.println("记录修改成功,共修改了 "+count+" 次!"); 
                }
               
         if(s.toLowerCase().equals("select")){
           pstate = conn.prepareStatement(sql);
           rs = pstate.executeQuery();     //将查询到的数据存放在rs结果集中。 
                   
      while(rs.next()){
       %>         //对查询到的数据进行输出,不过,值得注意的是数据库中的每一张表的结构不可能都相同,所以输出的类    型也会不同。本文的后面会提到一个解决思路。

     <center><p><%=rs.getString(1)%>--                                                 

                            <%=rs.getString(2)%>--                                     

                           <%=rs.getString(3)%>--     
                           <%=rs.getString(4)%>--     
                          <%=rs.getString(5)%> </p></center>
    <%   
            }
               rs.close();
          }                     
            pstate.close();
            conn.close();
    }  
  %>
                 
  </body>
</html>

      小结:这个小项目本人测试已成功。本文有些细节需要提一下,该项目中连接数据库的方式是使用JDBC接口,其他连接数据库的方式还有JSP+bean和数 据库连接池等。个人认为用数据库连接池技术连接数据库更为方便,高效。不过,对于刚接触连接数据库的人来说,这个技术不易于理解,所以最好是先接触 JDBC或JSP+bean。另外,我使用的执行SQL语句的对象是PreparedStatement 类型的,而不是Statement 类型,PreparedStatement虽然是Statement 的子接口,但是PreparedStatement相比之下更为安全和高效。(具体原因可上网查阅相关资料。)最后,再提一下关于解决查询到的数据输出到 页面问题的思路(这个思路其实是从老师那里问来的,嘿嘿。):输出时不用getString(),getInt()等获取数据类型的方法,而是直接获取表 的列名即getColumnName()方法,但是又衍生出一个问题-------每张表的列名也不会都相同,这就需要在XML中配置了。这个思路的具体 实现方法我也在探索中,如果探索出来了会及时更新到本文中的。

2
3
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java开源包1

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包10

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包8

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包11

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包2

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包3

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包6

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包5

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包4

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包7

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包9

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包101

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Java资源包01

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    asp.net知识库

    Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup Object Click button only once in asp.net 2.0 Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制...

    java 面试题 总结

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    基于jbpm与activiti的工作流平台技术架构介绍

    BPMX3是基于J2EE开源、轻量级的企业业务开发平台,基于代码重用、组件重用、业务逻辑重用、组装重用,结合快速开发平台中的工具,将开发人员从重复的代码编写中解放出来,把更多的精力集中解决客户的业务逻辑处理上...

Global site tag (gtag.js) - Google Analytics