jsp实现后台提交编程代码自动生成器

标题:jsp实现后台提交编程代码自动生成器

作者:吕海鹏 
来自:www.DeepTeach.com 
摘要:这篇文章主要针对有一定jsp编程经验和SQL语句基础的爱好者,文章主要探讨如何自动调用数据库的表内字段,自动生成相关字段后台代码的编程代码,说白了就是自动生成动态网站jsp代码的代码。

........................

一、序
前几天抽空,到哈尔滨今日图灵计算机学校听了一堂张老师讲的jsp课程,内容满有趣的,简单的整理了一下课堂笔记,帖出来和大家分享一下,由于是张老师的讲课内容(那可是人家的版权啊!),这里我就给大家看个骨头了,剩下的肉(阐述方法、思想)。相信会者自然会悟出来,不会的--呵呵,接着修炼吧!

二、引言
目前的软件并不是自动生成的,一行行代码也不是自动生成的。那么,为什么我们不努力于自动生成的软件?为什么不努力于创造能够自动生成原来需要手写的一行行代码呢?这里张老师为我们提供了这样一个思路。
1、你能列出你数据库内的表里的相关字段么?
2、既然能列出来,你能否有选择地将对应的字段swich()...case n:{}中呢?

三、程序实现代码

1、列出数据库中的所有表

 

  try
 {
        DatabaseMetaData dbmd = conn.getMetaData();
    
        // 指定所需 信息的列表
        String[] types = {"TABLE"};
         rs1 = dbmd.getTables(null, null, "%", types);
    
        while (rs1.next()) 
  {
            String tableName = rs1.getString(3);
            String tableCatalog = rs1.getString(1);
            String tableSchema = rs1.getString(2);
   out.println( tableName+"<BR>");
        }
    }
 catch (SQLException e) 
 {
    }
2、自动生成原来需要手写的jsp代码

 

<%
 if (request.getParameter("tableName")!=null)
 {
  sql1="select * from "+request.getParameter("tableName");
  rs1=stmt1.executeQuery(sql1);
 ResultSetMetaData rmt;
 rmt = rs1.getMetaData() ;
    int columnCount  = rmt.getColumnCount() ;
 out.println(columnCount+"<br>");
%>
<FORM METHOD=POST ACTION="">
<table border="1">
<%
 for(int i=2;i<=columnCount;i++)   //从2开始 略过 编号值
 {
  %>
<tr>
 <td><%=rmt.getColumnName(i).trim()%>:</td>  //输出字段名
  <td>
  <%
  switch( rmt.getColumnType(i) )
  {
   case 1://char
    %>
    <INPUT TYPE="text" NAME="<%=rmt.getColumnName(i).trim()%>"><BR>
    <%
    break;
   case 4://int
    if(rmt.getColumnName(i).trim().endsWith("_id")  )
    {
    %>
     <SELECT NAME="<%=rmt.getColumnName(i).trim()%>">
      <option > aa</option>
     </SELECT>
   <%    
    }
    else
    {
     %>
     <INPUT TYPE="text" NAME="<%=rmt.getColumnName(i).trim()%>" onBlur="jiancha()"><BR>
     <%
    }
    break;   
   case 12://vchar
  %>
     <textarea NAME="<%=rmt.getColumnName(i).trim()%>" cols="60" rows="6"></textarea>
  <%   
    break;
  }
  %>
   </td>
   </tr>
  <% 
 }
%>
<tr>
 <td colspan="2">
  <INPUT TYPE="submit"  value="提交">
  <INPUT TYPE="reset" value="重置">
 </td>
</tr>
</FORM>
<%
}
%>
-------------------

 

 

更新日志: 
2006-08-21 v0.1 初稿完成; 

参考文档: 

相关文档: 

致谢:
哈尔滨今日图灵计算机学校 张老师(http://www.turingtoday.net/)

讨论网址:bbs.DeepTeach.com

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值