commfunc.java

来自「采用web2.0技术,采用动态标签,sql语句全部存储在数据库里面.开发速度快.」· Java 代码 · 共 411 行

JAVA
411
字号
package com.sztheater.framework.util;
import java.sql.*;
import java.util.*;
/**
 *	公共函数
 */
public class CommFunc {
	public static String TYPE_NUMBER = ",number,numeric,real,smallmoney,num,float,decimal,double,int,integer,long,longint,money,bigint,binary,bit,smallint,tinyint,uniqueidentifier,";
	public static String TYPE_DATE   = ",date,datetime,timestamp,smalldatetime,time,";
	public static String TYPE_STRING = ",str,string,char,nchar,ntext,nvarchar,sql_variant,sysname,text,varchar,varchar2,";
	public static String TYPE_LOGIC  = ",like,like%,%like,>,<,=,>=,<=,";
	
	
	/*在HashMap设置数据,如果数据不存在,则设置指定的值*/
	public static void setValue(HashMap aHash,String f_name,String f_value){
		if(aHash==null ) return ;
		Object obj     = aHash.get(f_name);
		String s_value = null;
		
		if(obj!=null ){
			if(!obj.getClass().getName().equals("java.lang.String")) return;
			s_value = (String)obj;
			if(!s_value.equals("")) return ;
		}
		aHash.put(f_name,f_value);
		
	}
	/*在HashMap拷贝数据*/
	public static void copyData(HashMap source,HashMap dest){
		if(source==null || dest==null) return ;
		Iterator it = source.keySet().iterator();
		Object keyObj  = null;
		Object valueObj= null;
		while(it!=null && it.hasNext()){
			keyObj  = it.next();
			valueObj= source.get(keyObj);
			if(keyObj==null || valueObj==null)continue;
			dest.put(keyObj,valueObj);
		}
	}
	/*在ArrayList拷贝数据*/
	public static void copyData(ArrayList sList,ArrayList dList){
		copyData(sList,dList,false);
	}
	public static void copyData(ArrayList sList,ArrayList dList,boolean bAdd){
		if(sList==null || sList.size()<1 || dList==null) return ;
		int iLoop    = 0;
		int iLoopNum = sList.size();
		//释放目标列表中元素 
		if(!bAdd){
			freeObj(dList);
			dList.clear();
		}
		String class_name = "";
		Object obj        = null;
		for(iLoop=0;iLoop<iLoopNum;iLoop++){
			obj = sList.get(iLoop);
			if(obj==null) continue;
			class_name = obj.getClass().getName();
			if(class_name.equals("java.util.HashMap")){
				HashMap aHash = (HashMap)obj;
				HashMap bHash = new HashMap();
				copyData(aHash,bHash);
				dList.add(aHash);
				continue;
			}
			if(class_name.equals("java.lang.String")) {
				String str = (String)obj;
				dList.add(str);
				continue;
			}
			dList.add(obj);
		}
	}
	/*释放对象中数据*/
	public static void freeObj(Object Obj){
		if(Obj ==null) return;
		String class_name = Obj.getClass().getName();
		if(class_name.equals("java.lang.String")){
			class_name = null;
			return;
		}
		Object keyObj  = null;
		Object valueObj= null;
		if(class_name.equals("java.util.HashMap")){
			HashMap aHash = (java.util.HashMap)Obj;
			Iterator it = aHash.keySet().iterator();
			while(it!=null && it.hasNext()){
				keyObj  = it.next();
				valueObj= aHash.get(keyObj);
				
				if(keyObj  !=null) freeObj( keyObj   );
				if(valueObj!=null) freeObj( valueObj );
				keyObj   = null;
				valueObj = null;
			}
		}
		if(class_name.equals("java.util.ArrayList")){
			ArrayList aList = (java.util.ArrayList)Obj;
			if(aList==null) return ;
			int iLoop    = 0;
			int iLoopNum = aList.size();
			for(iLoop=0;iLoop<iLoopNum;iLoop++){
				valueObj =  aList.get(iLoop);
				freeObj( valueObj );
				valueObj = null;
			}
			aList.clear();
		}
	}
	//判断两个HashMap 中是否相同,判断键名称有dHash来提供
	public static boolean isEuqals(HashMap sHash,HashMap dHash){
		if(sHash==null || dHash==null) return false;
		String   f_name   = null;
		String   f_value  = null;
		String   f_temp   = null;
		Iterator it = null;
		it = dHash.keySet().iterator();
		while(it!=null && it.hasNext()){
			f_name  = (String)it.next();
			if(f_name==null) continue;
			f_value = (String) sHash.get(f_name);
			f_temp  = (String) dHash.get(f_name);
			if(f_value==null) f_value = "";
			if(f_temp ==null) f_temp  = "";
			if(f_temp.equals(f_value)) continue;
			return  false;
		}
		return true;
	}
	//判断列表中是否存在指定的值
	public static boolean judgeExists(ArrayList vList,String s_value){
		if(s_value==null || vList==null) return false;
		int      iLoop    = 0;
		int      iLoopNum = 0;
		boolean  bExist   = true;
		Object   obj      = null;
		String   class_name = null;
		iLoopNum = vList.size();
		for(iLoop=0;iLoop<iLoopNum;iLoop++){
			obj =  vList.get(iLoop);
			if(obj==null) continue;
			class_name = obj.getClass().getName();
			if(class_name.equals("java.lang.String") && s_value.equals(obj)) return true;
		}
		return false;
	}
	public static ArrayList getListFromStr(String str){
		if(str==null) return null;
		
		int       iPos1 = 0;
		int       iPos  = 0;
		String    s_name= null;
		ArrayList aList = null;
		str  = str.trim().toLowerCase();
		
		while(!str.equals("")){
			iPos  = str.indexOf("`");
			if(iPos<0){
				iPos  = str.indexOf(";");
				iPos1 = str.indexOf(",");
				if(iPos<0 || (iPos>iPos1 && iPos1>-1 )) iPos = iPos1;
			}
			if(iPos<0){
				s_name = str;
				str    = "";
			}else{
				s_name = str.substring(0,iPos).trim();
				str    = str.substring(iPos+1).trim();
			}
			if(s_name.equals("")) continue;
			if(aList==null) aList= new ArrayList(10);
			aList.add(s_name);
		}
		return aList;
	}
	public static String toString(ArrayList aList,boolean bXML){
		if(aList==null) return "";
		StringBuffer sbRet = new StringBuffer();
		int     iLoop    = 0;
		int     iLoopNum = aList.size();
		Object  obj = null; 
		int     iRowIndex = 0;
		String  strRow = ""; 
		String  row_name = ""; 
		HashMap aHash = null;
		Object  objTmp  =null;
		String  class_name = null;
		iLoopNum = aList.size();
		for(iLoop=0;iLoop<iLoopNum;iLoop++){
			obj = aList.get(iLoop);
			if(obj==null) continue;
			row_name = null;
			class_name = obj.getClass().getName();
			if(class_name.equals("java.util.HashMap")){
				aHash = (HashMap)obj;
				strRow = toString(aHash,bXML);
				objTmp = aHash.get("ROW_ID");
				if(objTmp!=null && objTmp.getClass().getName().equals("java.lang.String")) row_name = (String)objTmp;
				//Console.Out.WriteLine( iLoop+" " + strRow);
			}
			if(class_name.equals("java.util.ArrayList")){
				strRow = toString((ArrayList) obj, bXML);
			}
			if(class_name.equals("java.util.String")){
				strRow = (String) obj;
			}
			if(strRow==null || strRow.equals("")) continue;
			iRowIndex ++;
			if(row_name==null || row_name.trim().equals("")) row_name= "ROW_"+ iRowIndex;
			if(bXML){
				sbRet.append("\t<");
				sbRet.append(row_name);
				sbRet.append(">\n");
			}
			sbRet.append(strRow);
			if(bXML){
				sbRet.append("\t</");
				sbRet.append(row_name);
				sbRet.append(">");
			}
			sbRet.append("\r\n");
		}
		String str = sbRet.toString();
		sbRet.delete(0,sbRet.length());
		sbRet.setLength(0);
		sbRet = null;
		return str;
	}
	/* 将哈希表的元素以XML来显示
	*/
	public static String toString(HashMap aHash,boolean bXML){
		if(aHash==null) return "";

		StringBuffer sbRet = new StringBuffer();
		Iterator it = aHash.keySet().iterator();
		while(it!=null && it.hasNext()){
			Object keyObj  = it.next();
			Object valueObj = aHash.get(keyObj);
			if(bXML){
				sbRet.append("\t\t<");
				sbRet.append(keyObj);
				sbRet.append(">");
				sbRet.append(valueObj);
				sbRet.append("</");
				sbRet.append(keyObj);
				sbRet.append(">");
				sbRet.append("\r\n");
			}else{
				sbRet.append(keyObj);
				sbRet.append("=");
				sbRet.append(valueObj);
				sbRet.append("\r\n");
			}
		}
		String str = sbRet.toString();
		sbRet.delete(0,sbRet.length());
		sbRet.setLength(0);
		sbRet = null;
		return str;
	}
	//取得值
	public static HashMap getValue(ArrayList aList,int iIndex ){
		Object obj = null;
		if(aList==null) return null;
		int iSize = aList.size();
		if(iIndex>-1 && iIndex<iSize) obj = aList.get(iIndex);
		if(obj!=null && obj.getClass().getName().equals("java.util.HashMap")) return (HashMap)obj;
		return null;
	}
	public static String getValue(HashMap aHash,String key_name ,String def ){
		return getValue( aHash, key_name , def ,false);
	}
	public static String getValue(HashMap aHash,String key_name ,String def ,boolean bTrim){
		if(aHash==null || key_name==null) return def;
		String  sValue = null;
		key_name   = key_name.trim();
		Object obj = aHash.get(key_name);
		if(obj!=null && obj.getClass().getName().equals("java.lang.String")) sValue =(String)obj;
		if(sValue==null) sValue = def;
		if(bTrim && sValue!=null ) sValue = sValue.trim();
		return sValue;
	}
	/*
	描述:
	*<p>依据指定的源字段名与字段值,取得需要的字段值</p>
	* @param aList       数据集合
	* @param s_name      源字段名
	* @param s_value     字段值
	* @param r_value     需要的字段名
	* @return 需要的字段值
	*/
	public static String getValue(ArrayList aList,String s_name,String s_value,String r_value){
		Object  obj        = null;
		int     iSize      = aList.size();
		int     iLoop      = 0;
		String  class_name = null;
		String  f_value    = null;
		HashMap aHash      = null;
		
		if(aList==null || s_name==null) return null;
		
		iSize      = aList.size();
		for(iLoop=0;iLoop<iSize;iLoop++){
			obj = aList.get(iLoop);
			if(obj==null) continue;
			class_name = obj.getClass().getName();
			if(!class_name.equals("java.util.HashMap")) continue;
			aHash  =(HashMap)obj;
			f_value = getValue(aHash,s_name ,null);
			if(f_value==null) continue;
			if(f_value.equals(s_value)) {
				return getValue(aHash,r_value ,null);
			}
		}
		return null;
	}
	public static int strToInt(String s,int iDef){
		if(s==null || s.trim().equals("")) return iDef;
		try{
			return Integer.parseInt(s,10);
		} catch(Exception e){
			return iDef;
		}
	}
	
	//取得上传的文件中取得相关的文件信息
	public static HashMap getUpload(HashMap hashpara,String f_name){
		if(hashpara==null ) return null;
		if(f_name==null || f_name.trim().equals("")) return null;
		f_name = f_name.trim();
		Object    obj   = hashpara.get("FILE-LIST");
		if(obj==null || obj.getClass().getName().indexOf("ArrayList")<0) return null;
		ArrayList aList = (ArrayList)obj;
		int   iLoop    = 0;
		int   iLoopNum = aList.size();
		HashMap aHash  = null;
		String  s_name = null;
		for(iLoop=0;iLoop<iLoopNum;iLoop++){
			aHash = (HashMap)aList.get(iLoop);
			if(aHash==null) continue;
			s_name = (String)aHash.get("name");
			if(s_name!=null && s_name.equals(f_name)){
				return aHash;
			}
		}
		return null;
	}
	
	public static ArrayList getUploadFiles(HashMap hashParam){
		if(hashParam==null) return null;
		Object obj = hashParam.get("FILE-LIST");
		if(obj==null || obj.getClass().getName().indexOf("ArrayList")<0) return null;
		ArrayList fileList  = (ArrayList)obj;
		int       iLoop     = 0;
		int       iLoopNum  = 0;
		HashMap   aHash     = null;
		String    real_file = null;
		ArrayList aList     = null;
		if(fileList!=null) iLoopNum = fileList.size();
		for(iLoop=0;iLoop<iLoopNum;iLoop++){
			aHash = (HashMap)fileList.get(iLoop);
			real_file= CommFunc.getValue(aHash  ,"real_file"    ,""  ,true);
			if(real_file.equals("")) continue;
			if(aList==null) aList =new ArrayList(10);
			aList.add(aList);
		}
		return aList;
	}
	public static ArrayList getDataFromStr(String str){
		if(str==null) return null;
		
		int       iPos1  = 0;
		int       iPos   = 0;
		String    f_name = null;
		String    f_value= null;
		String    f_expr = null;
		ArrayList aList  = null;
		HashMap   aHash  = null;
		while(!str.equals("")){
			iPos  = str.indexOf("`");
			if(iPos<0){
				f_expr = str;
				str    = "" ;
			}else{
				f_expr = str.substring(0,iPos );
				str    = str.substring(iPos + 1);
			}
			iPos = f_expr.indexOf("=");
			if(iPos<0) continue;
			
			f_name  = f_expr.substring(0,iPos );
			f_value = f_expr.substring(iPos + 1);
			
			if(aHash==null || aHash.containsKey(f_name)) {
				aHash = new HashMap();
				if(aList==null) aList= new ArrayList(10);
				aList.add(aHash);
			}
			aHash.put(f_name,f_value);
		}
		return aList;
	}
	
	public static void main(String args[])	{
		String str = "`column_id=111`tag_id=aaaa`column_id=222`column_id=333`tag_id=ccc";
		ArrayList aList = getDataFromStr(str);
		System.out.println(aList);
	}
	
}

⌨️ 快捷键说明

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