首页 > 开发 > JSP > 正文

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

2020-02-05 13:47:00
字体:
来源:转载
供稿:网友
摘要:这篇文章主要针对有一定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>
<%
}
%>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表