Java下通用自动插入数据组件的编制

2008-02-23 09:23:32来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

正文

将可复用程序进行组件化是J2EE的核心思想之一。组件表示的是开发和发布的单元,从组件用户的角度来看,组件可以在一个应用程序中使用多次,并在多个位置使用,在Java爱好者中一个广为人知的组件实例就是免费的商业组件SmartUpload。这里向大家介绍的是个人在实践中为了简化工作而制作的一个简单的自动插入数据的java组件,目的是将个人编制组件时的思考方法和技术实践拿出来与大家交流切磋。

需求:

在J2EE项目开发中,实现数据插入是一个基本的功能,在一些大中型项目中往往有几十上百的数据单表插入的操作,对这一部分工作实现组件化可以大幅减轻开发工作量,提高工作效率。

分析:

在不考虑EJB组件的J2EE(b/s)技术中实现一个数据行的插入一般需要以下技术和实现流程:

  1. 用户在网页(HTM或JSP)表单中填写将要插入到数据库中数据,提交表单;
  2. 由系统指定的jsp或Servlet处理提交的表单,组装插入数据的SQL语句,通过系统数据接口(JDBC或其他方式)建立数据库连接,执行插入数据的SQL操作,将从页面表单中获取的输入数据插入到指定的数据表中,完成数据插入。
  • 简单分析一下,在上述第一步的操作中通常都是不确定的,在完成设计之前是不知道需要将怎样的数据插入到哪一张数据表中的,而在第二步中只有两个半细节是不确定的:

    • 组装的数据插入SQL语句将随表单中的页面元素变化而变化;
    • 插入数据的数据表不确定;
    • 系统的数据库接口不确定(但对于一个已经完成设计的系统来说,这是确定的,因此姑且把这一条件算作半个不确定因素)。

    因此如果能将上述a、b两个细节实现动态组装(暂时不考虑c细节)那就可以编制出我们自己的通用数据插入组件。

    技术实现:

    完成初步分析后,我们来看看Java中能为这一需求提供技术实现的方法:HttpServletRequest接口是对Http协议请求消息的包装,同时还继承了ServletRequest接口中定义的一些获取表单数据的基本方法--凡是实现了HttpServletRequest接口的对象,都可以通过调用这些方法获得客户端提交上来的表单数据,在这些方法中,对于我们实现通用数据插入组件有用的的方法之一是getParameterNames(),这一方法返回一个枚举对象(Enumeration),其中包含有所有提交的表单元素的名字(属性name中的值)。我们将以此方法作为开发数据自动插入组件的基础。下面是实现这一组件的主要代码:

    1、提交数据的网页,需要按照以下规则进行页面元素命名:

    • 表单中凡是不用于组装数据插入SQL语句的页面元素都加上"_submit"后缀;

    • 用于插入数据的数据表名放到名为"tabname_Submit"的页面元素中;

    • 完成数据插入操作后的系统提示页面名(如显示"你已成功完成数据提交!"信息)放到名为" sendRedirect_Submit"的页面元素中;

    • 用于插入数值的页面元素都加上"_NWWW"后缀(说明一下,在数据插入中主要是分两类数据操作:字符型(包括日期型)与数值型,因此对其加以区分,选用"_NWWW"后缀没有特别的意义,只是考虑这么难看的后缀很少被引用,避免命名冲突,嘿嘿……);

    • 表单中凡是用以组装数据插入SQL语句的页面元素的名字都必须与数据表中的相关字段同名(这也意味着数据表中数值型的字段名都应加上"_NWWW"后缀)。

    下面是一张简单的Web中数据表单的代码样例:

    <form name="form1" action="AutoInsertServlet">
    
      <table align="center">
    
        <tr valign="baseline"> 
    
          <td nowrap align="right">Name:</td>
    
          <td> 
    
            //这里是字符型的数据
    
            <input type="text" name="name" value="" size="32">
    
          </td>
    
        </tr>
    
        <tr valign="baseline"> 
    
          <td nowrap align="right">A_NWWW:</td>
    
          <td> 
    
            //这里是数值型的数据
    
            <input type="text" name="a_NWWW" value="" size="32">
    
          </td>
    
        </tr>
    
        <tr valign="baseline"> 
    
          <td nowrap align="right"> </td>
    
          <td>  </td>
    
        </tr>
    
      </table>
    
      <p align="center">
    
      
    
        //这里是无关的页面元素,加" _Submit"后缀
    
        <input type="submit" name="Submit_Submit" value="提    交" >
    
    
    
        //这里是放置的插入表名的页面元素,必须名为"tabname_Submit"
    
        <input type="hidden" name="tabname_Submit" value="smartin">
    
    
    
        //这里是放置插入后系统提示页面名的页面元素,必须名为"sendRedirect_Submit"
    
        <input type="hidden" name="sendRedirect_Submit" value="saved.jsp">
    
      </p>
    
    </form>
    
    
    			   
    			   

    标签:

    版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 上一篇:【J2ME】 Debug 笔记(二)

    下一篇:跟我学Java Swing之游戏设计(3)