⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treemanagementbusinesslogic.java

📁 用JAVA实现的对动态树状信息的管理。操作员可以通过IE浏览器查看整个树形结构信息
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }
    	
    	//father_id不能为空
    	if(father_id==null){
    	
    		return new BusinessObject(errorMsg(-3, "not find bizlogic.requestparameter.father_id"));
        }
    	
    	//root节点在数据库中已经存在且不能修改、删除
    	if("0".equalsIgnoreCase(node_id.trim())){
    		
    		return new BusinessObject(errorMsg(-1002, "connot delete or modify root node "));
        }
    	
    	
    	if(name==null) name="";
    	if(url==null) url="";
    	
    	//
    	//DB操作
    	//
    	
    	PooledConnection conn = null;
        Statement statement =null;
        ResultSet resultSet =null;
        
        try{
        	conn = dbManager.getConnection();
            conn.setAutoCommit(false);//设置自动提交属性为false
            
            statement = conn.createStatement();
            
            //检查father_id对应节点的第一级子节点中是否有与该节点重名的节点
            String sql="select count(*) from tree_node_t where father_id="+father_id + " and name='"+name+"' and node_id<>"+node_id;
            debug(sql);
            
            resultSet = statement.executeQuery(sql);
            
            resultSet.next();

            if (resultSet.getInt("count(*)") > 0) {
                return new BusinessObject(errorMsg(-1001, "the name is already exist "));
            }
            resultSet.close();
            
            //更新数据库记录
            sql="update tree_node_t set "+
                 "father_id="+father_id+","+
                 "name='"+name+"',"+
                 "url='"+url+"' where node_id="+node_id;
                 
            debug(sql);
            
            statement.execute(sql);
            conn.commit();
            
            statement.close();
            
            StringBuffer xml= new StringBuffer("<bizlogic><resultcode>0</resultcode><resultmessage>TreeManagementLogic request done.</resultmessage>"); 
            xml.append("<resultparameter>");
            xml.append("</resultparameter>" + Char.LINE_SEPARATOR);
            xml.append("</bizlogic>"); 
           
            return new BusinessObject(xml.toString()); 
          
          } catch (SQLException e) {
            debug(("[" + e.getErrorCode() + "]" + e.getSQLState()));
            //e.printStackTrace();
            logXML = "<bizlogic><sourceclass>" + this.getClass().getName() + "</sourceclass>" +
                    "<errormessage>" + e.getMessage() + "</errormessage>" +
                    "<errorsqlcode>" + e.getErrorCode() + "</errorsqlcode>" +
                    "<errorsqlstate>" + e.getSQLState() + "</errorsqlstate>" +
                    "<requestsource>" + inObject.toString() + "</requestsource></bizlogic>";
            lm.Log(new BusinessObject(logXML), LogLevel.ERROR);
            return new BusinessObject("<bizlogic><resultcode>-1</resultcode><resultmessage>TreeManagementLogic treeModify method DB operate error.</resultmessage></bizlogic>");
        } finally {
            dbManager.freeConnection(conn);
        }
    }
    
    /**
    *
    *查询整棵树型结构的节点信息
    *@param inObject
    *@return 
    */ 	
    protected BusinessObject listAllTreeNode(BusinessObject inObject){
    	
    	PooledConnection conn = null;
        try {
            conn = dbManager.getConnection();

            String sql = "select * from tree_node_t order by node_id";

            debug(sql);

            Statement statement = conn.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);

            StringBuffer sb = new StringBuffer("");

            int count=0;
            while (resultSet.next()) {
            	count++;

                sb.append("<node_id"+count+">");
                sb.append(null2string(resultSet.getString("node_id")));
                sb.append("</node_id"+count+">");

                sb.append("<father_id"+count+">");
                sb.append(null2string(resultSet.getString("father_id")));
                sb.append("</father_id"+count+">");

                sb.append("<name"+count+">");
                sb.append(null2string(resultSet.getString("name")));
                sb.append("</name"+count+">");

                sb.append("<url"+count+">");
                sb.append(null2string(resultSet.getString("url")));
                sb.append("</url"+count+">");
    
            }

            //清理现场
            resultSet.close();
            statement.close();

            StringBuffer xml = new StringBuffer("<bizlogic><resultcode>0</resultcode><resultmessage>TreeManagementLogic request done.</resultmessage>");
            xml.append("<resultparameter>");
            xml.append("<count>"+count+"</count>");
            xml.append(sb);
            xml.append("</resultparameter>" + Char.LINE_SEPARATOR);
            xml.append("</bizlogic>");

            return new BusinessObject(xml.toString());
        } catch (SQLException e) {
        	
            debug(("[" + e.getErrorCode() + "]" + e.getSQLState()));
            //e.printStackTrace();
            logXML = "<bizlogic><sourceclass>" + this.getClass().getName() + "</sourceclass>" +
                    "<errormessage>" + e.getMessage() + "</errormessage>" +
                    "<errorsqlcode>" + e.getErrorCode() + "</errorsqlcode>" +
                    "<errorsqlstate>" + e.getSQLState() + "</errorsqlstate>" +
                    "<requestsource>" + inObject.toString() + "</requestsource></bizlogic>";
            lm.Log(new BusinessObject(logXML), LogLevel.ERROR);
            return new BusinessObject("<bizlogic><resultcode>-1</resultcode><resultmessage>TreeManagementLogic listAllTreeNode method DB operate error.</resultmessage></bizlogic>");
        } finally {
            dbManager.freeConnection(conn);
        }

    }     
    	
    
    
    /**
    *
    *根据编号删除节点信息
    *@param inObject
    *@return 
    */   	
    protected BusinessObject deleteTreeNode(BusinessObject inObject){
    	
    	//得到参数
    	String node_id=inObject.getValue("bizlogic.requestparameter.node_id");
    	
    	//root节点不能删除
    	if("0".equalsIgnoreCase(node_id.trim())){
    		
    		return new BusinessObject(errorMsg(-1002, "connot delete or modify root node "));
        }
    		

    	
        try{

            
            deleteNode(node_id);

            StringBuffer xml = new StringBuffer("<bizlogic><resultcode>0</resultcode><resultmessage>TreeManagementLogic request done.</resultmessage>");
            xml.append("<resultparameter>");
            xml.append("</resultparameter>" + Char.LINE_SEPARATOR);
            xml.append("</bizlogic>");

            return new BusinessObject(xml.toString());

        } catch (SQLException e) {
            debug(("[" + e.getErrorCode() + "]" + e.getSQLState()));
            //e.printStackTrace();

            logXML = "<bizlogic><sourceclass>" + this.getClass().getName() + "</sourceclass>" +
                    "<errormessage>" + e.getMessage() + "</errormessage>" +
                    "<errorsqlcode>" + e.getErrorCode() + "</errorsqlcode>" +
                    "<errorsqlstate>" + e.getSQLState() + "</errorsqlstate>" +
                    "<requestsource>" + inObject.toString() + "</requestsource></bizlogic>";
            lm.Log(new BusinessObject(logXML), LogLevel.ERROR);
            return new BusinessObject("<bizlogic><resultcode>-1</resultcode><resultmessage>TreeManagementLogic deleteNode method DB operate error.</resultmessage></bizlogic>");
        } 
    
    
    } 
        
        
        
        
        
     //第归方法,删除一个节点,如果是非叶子节点,则删除子树
     private void deleteNode(String node_id) throws SQLException{

        //
    	//DB操作
    	//
    	
        PooledConnection conn = null;
        Statement statement = null;
        ResultSet resultSet =null;
        
        try{
        	
        	conn = dbManager.getConnection();
            conn.setAutoCommit(false);
            
            statement = conn.createStatement();

            //如果删除一个节点,则其子节点也随之删除
            String sql ="select node_id from tree_node_t where father_id="+node_id;
            debug(sql);
            
            resultSet = statement.executeQuery(sql);
            
            String sub_node_id=null;
            
            while(resultSet.next()){
            	sub_node_id=resultSet.getString("node_id");
            	deleteNode(sub_node_id);
            	
            }

            sql = "delete from tree_node_t where node_id="+node_id;
            
            debug(sql);
            
            statement.execute(sql);
            
            conn.commit();
            
        }catch(SQLException e){
        	
        	throw e;
        }finally {
           
            	dbManager.freeConnection(conn);
        }
        
    }
            
            
          
            
      private String null2string(String str) {
        if (str == null)
            return "";
        else
            return str;
    }
    
}
     	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -