添加分类例子

 
 
添加分类例子:
 
数据库语句(Oracle):(如父类’A_1’,子类’A_!_2’)
-- Create table
create table TESTCLASS
(
 ID        NUMBER not null,
 CATE_ID   VARCHAR2(
50 ),
 CATE_PID VARCHAR2(
50 ),
 CATE_NAME VARCHAR2(
50 )
)
tablespace USERS
 pctfree
10
 initrans
1
 maxtrans
255
 storage
 (
    initial
64 K
    minextents
1
    maxextents unlimited
 );
-- Create/Recreate primary, unique and foreign key constraints
alter table TESTCLASS
 add constraint TID_PK primary key (ID)
 disable;
 
 
Index.jsp
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ;
%>
 
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  < head >
    < base href = " <%= basePath %> " >
   
    < title > 添加分类测试成功 </ title >
   
    < meta http-equiv = "pragma" content = "no-cache" >
    < meta http-equiv = "cache-control" content = "no-cache" >
    < meta http-equiv = "expires" content = "0" >
    < meta http-equiv = "keywords" content = "keyword1,keyword2,keyword3" >
    < meta http-equiv = "description" content = "This is my page" >
   
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
   
    < script language = "javascript" >
       var XMLHttpReq;      // 创建XMLHttpRequest对象      
      function createXMLHttpRequest() {
              if (window.XMLHttpRequest) { //Mozilla 浏览器
                     XMLHttpReq = new XMLHttpRequest();
              }
              else if (window.ActiveXObject) { // IE 浏览器
                      try {
                           XMLHttpReq = new ActiveXObject( "Msxml2.XMLHTTP" );
                     } catch (e) {
                           try {
                              XMLHttpReq = new ActiveXObject( "Microsoft.XMLHTTP" );
                            } catch (e) {}
                     }
              }
       }
       // 发送请求函数
       function sendRequest() {
            createXMLHttpRequest();
            var url = "optionsServlet" ;
              XMLHttpReq.open( "GET" , url);
              XMLHttpReq.onreadystatechange = processResponse; // 指定响应函数
              XMLHttpReq.send( null );  // 发送请求
       }
       // 处理返回信息函数
       function processResponse() {
       if (XMLHttpReq.readyState == 4) { // 判断对象状态
              if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
                        display();
                        setTimeout( "sendRequest()" , 10000); //10 秒后刷新
              } else { // 页面不正常
                    window.alert( " 您所请求的页面有异常。" );
              }
         }
      }
      // 显示更新数据信息的函数
      function display() {
           var optionsText = XMLHttpReq.responseText;
           document.getElementById( "selects" ).innerHTML = optionsText;
      }
 
</ script >
  </ head >
 
  < body onload = "sendRequest()" >
    <!-- 注意:<option>选项改为动态显示就行<option> -->
    < center > 添加分类 </ center >
    < form action = "test/addShow.jsp" name = "form1" method = "post" >
     < table width = "35%" border = "0" align = "center" class = "maintbbg" cellspacing = "1" cellpadding = "0" >
      < tr class = "maintbtr3" height = 25 >
      < td >
        < div align = "right" > 用户分类名: </ div >
       
      </ td >
      < td > &nbsp; < input TYPE = "text" NAME = "cate_name" class = "input" ></ td >
      &nbsp;
       < div id = "selects" name = "selects" ></ div >
     
    </ tr >
    < tr >
      < td > < input TYPE = "submit" name = " 提交" value = " 提交" /></ td >
    
    </ tr >
    </ table >
    </ form >
  </ body >
</ html >
  
 
 
addShow.jsp
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8" %>
<%@ page import = "cc.yiyao.dbConn.JdbcUtil,java.sql.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ;
%>
 
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  < head >
    < base href = " <%= basePath %> " >
   
    < title > My JSP 'addShow.jsp' starting page </ title >
   
    < meta http-equiv = "pragma" content = "no-cache" >
     < meta http-equiv = "cache-control" content = "no-cache" >
    < meta http-equiv = "expires" content = "0" >
    < meta http-equiv = "keywords" content = "keyword1,keyword2,keyword3" >
    < meta http-equiv = "description" content = "This is my page" >
   
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </ head >
 
  < body >
 
    <%
      Connection conn = JdbcUtil.getConnection();
      conn.setAutoCommit( false );
      Statement stmt = conn.createStatement();
      String dbCate_id = "" ; // 将来数据库中插入的字段
      String temp_cateid = "" ;
      String cate_pid = request.getParameter( "cate_pid" );
      String sqlSel = "select * from testClass where cate_pid = '" +cate_pid+ "' order by id desc" ; //( 实际上只要返回一条记录,不过oracle不能用top1
      ResultSet rs = null ;
      rs= stmt.executeQuery(sqlSel);
     
      if (rs.next()){  // 有相同类别的数据,取出最大值,再加上1;
         temp_cateid = rs.getString( "cate_id" );
         // 分离出数字,后再加1,如A_2_1,分离出最后一个数字,再加1。
         int k = temp_cateid.lastIndexOf( "_" );
         // 获得最后一部分的数字
        String strLastPart = temp_cateid.substring(k+1,temp_cateid.length());
       
        out.println( "strLastPart=" +strLastPart);
         // 获得字符串的前一部分
        String strFirstPart = temp_cateid.substring(0,k+1);
        out.println( "strFirstPart=" +strFirstPart);
       
        // 将最后的数字加1,最后合起来
        dbCate_id = strFirstPart + (Integer.parseInt(strLastPart)+1);
        out.println( "dbCate_id" +dbCate_id);
      
     
      } else {
        // 没有相同类别的数据,初始化开始值
        if (!cate_pid.equals( "0" )){  // 没有相同类别的数据(开始的子类别为父类别+”_1",初始化开始值(select 中以"0"为开始,没有相同类别又等于0说明数据库中都没有数据)
            dbCate_id = cate_pid+ "_1" ;
         } else // 说明数据库未插入 //select 中以"0"为开始,没有相同类别又等于0说明数据库中都没有数据
           dbCate_id = "A_1" ;
         }
      }
   
      String className = request.getParameter( "cate_name" );
      String sql = "insert into testClass values (5,'" +dbCate_id+ "','" +cate_pid+ "','" +className+ "')"
      stmt.executeUpdate(sql);
      conn.commit();
      conn.setAutoCommit( true );
      out.println( "dbCate_id2" +dbCate_id);
     if (stmt!= null ) {
        stmt.close();
      }
      if (conn!= null ) {
        conn.close();
      }
    %>
  </ body >
</ html >
 
 
Servlet:
 
package test;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class RefreshOptionsServlet extends HttpServlet {
 
      
       public RefreshOptionsServlet() {
              super();
       }
 
       public void doGet(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException, IOException {
 
              response.setContentType("text/html;charset=gb2312");
              response.setHeader("Cache-Control", "no-cache"); //注意设置页面不缓存,不然就看不到刷新的效果了!!
              PrintWriter out = response.getWriter();
             
              StringBuffer optionsText = new StringBuffer("");
              Connection conn = null;
              try {
                     Class.forName("oracle.jdbc.driver.OracleDriver");
                     conn = DriverManager.getConnection(
                                   "jdbc:oracle:thin:@localhost:1521:Oracle1",
                                   "system",
                                   "system"
                                   );
                     Statement stmt = conn.createStatement();
                     String sql = "select * from testClass";//sql = "select * from testClass where cate_pid = 0";
                     ResultSet rs = null;
                     rs = stmt.executeQuery(sql);
                    
                     String cate_pid = ""; //父编号
                     String cate_name = ""; //名称
                     String cate_id = ""; //编号
                     String sql2 = "select * from testClass where cate_pid='";
                    
                    
                     optionsText = optionsText.append("<select name='cate_pid'><option value='0'>无</option>");
                      
                     while(rs.next()){
                            cate_id = rs.getString("cate_id");
                            cate_name = rs.getString("cate_name");
                            cate_pid = rs.getString("cate_pid");
                           
                            optionsText = optionsText.append("<option value='"+cate_id+"'>"+cate_name+"</option>");
                     }
                    
              } catch (ClassNotFoundException e) {
                     e.printStackTrace();
              } catch (SQLException e) {
                     e.printStackTrace();
              }
             
              optionsText = optionsText.append("</select>");
              out.print(optionsText.toString());
       }
 
 
       public void doPost(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException, IOException {
         doGet(request,response);
             
       }
 
 
      
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值