加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

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

发布时间:2023-05-23 14:04:25 所属栏目:教程 来源:
导读:摘要:这篇文章主要针对有一定jsp编程经验和sql语句基础的爱好者,文章主要探讨如何自动调用数据库的表内字段,自动生成相关字段后台代码的编程代码,说白了就是自动生成动态网站jsp代码的代码。

一、序

前几
摘要:这篇文章主要针对有一定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>
 
<%
 
}
 
%>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!