jsp實現後台提交編程代碼自動產生器

來源:互聯網
上載者:User
js|編程|後台 摘要:這篇文章主要針對有一定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>
<%
}
%>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.