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

📄 tcutabledatapkg.java

📁 为公司做的质量考核接口源码,用spring,hibernate,XML实现,对XML接口编程很有帮助
💻 JAVA
字号:
package com.jr81.source.dataset;

import java.io.Reader;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;

import java.util.List;

import org.jdom.Element;

import com.jr81.source.common.JrUtility;
import com.jr81.source.common.TcuDataType;
import com.jr81.source.stream.TcuBaseClassSTR;
import com.jr81.source.stream.TcuBaseItemsSTR;

public class TcuTableDataPkg extends TcuBaseClassSTR {

	private String Name= "";
	private Integer InsertCount=Integer.valueOf(0);
	private TcuTableInfo TableInfo=new TcuTableInfo();
	private TcuDataRecordList DataRecordList =new TcuDataRecordList();
	
	
	public TcuTableDataPkg() {
		super("TDP");
		// TODO 自动生成构造函数存根
	}
		
	public boolean Clear() {
		// TODO 自动生成方法存根
		Name = "";
		InsertCount=Integer.valueOf(0);
		TableInfo.Clear();
		DataRecordList.Clear();
		return true;
	}
	
	public boolean CreateStrItems() throws  Exception {
		// TODO 自动生成方法存根
		StrItems.Clear();
		StrItems.AddItem("Name", getName());
		StrItems.AddItem("IC", getInsertCount());
		StrItems.AddItem("TI",TableInfo.SaveToByteArray(),0);
		StrItems.AddItem("DRL",DataRecordList.SaveToByteArray(),0);
		return true;
	}

	public boolean ParseStrItems() throws Exception {
		// TODO 自动生成方法存根
		setName(StrItems.GetItem("Name"));
		setInsertCount(StrItems.GetItemToInteger("IC"));
		TableInfo.LoadFromByteArray(StrItems.GetItemByteArray("TI"));
		DataRecordList.LoadFromByteArray(StrItems.GetItemByteArray("DRL"));
		return true;
	}
	
	public String SaveToXML(){		
		return GetXMLItem("TableDataPkg",GetXMLItems());
	}
	
	public String GetXMLItems(){
		//String xml=GetXMLItem("TableName",Name);
		//xml+=DataRecordList.SaveToXML();
		return DataRecordList.GetXMLItems();
	}
	
	public boolean ParseXMLItems(Element xml){
		//Name=xml.getChildText("TableName");		
		return DataRecordList.ParseXMLItems(xml);		
	}
	
	public boolean LoadFromXML(Element root){
		Element xml=root.getChild("TableDataPkg");
		return ParseXMLItems(xml);
	}
	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) {
		// TODO 自动生成方法存根
		TcuTableDataPkg tbpkg=new TcuTableDataPkg();
		try {
			List list=new ArrayList();
			list.add("1");
			list.add("2");

			System.out.println(tbpkg.SaveToXML());
		} catch (Exception e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}	

	}

	/**
	 * @return 返回 dataRecordList。
	 */
	public TcuDataRecordList getDataRecordList() {
		return DataRecordList;
	}

	/**
	 * @param dataRecordList 要设置的 dataRecordList。
	 */
	public void setDataRecordList(TcuDataRecordList dataRecordList) {
		DataRecordList = dataRecordList;
	}

	/**
	 * @return 返回 tableInfo。
	 */
	public TcuTableInfo getTableInfo() {
		return TableInfo;
	}

	/**
	 * @param tableInfo 要设置的 tableInfo。
	 */
	public void setTableInfo(TcuTableInfo tableInfo) {
		TableInfo = tableInfo;
	}
	
	public boolean fromResultSet(ResultSet rs){	
		return fromResultSet(rs,null,null,false);
	}
	
	public boolean fromResultSet(ResultSet rs , boolean IsJavaTypeToDelphi) {
		return fromResultSet(rs,null,null,IsJavaTypeToDelphi);
	}
	
	public boolean fromResultSet(ResultSet rs,Connection con,String table_name){	
		return fromResultSet(rs,con,table_name,false);
	}
	
	public boolean fromResultSet(ResultSet rs,Connection con,String table_name,boolean IsJavaTypeToDelphi){	
		try {
			Clear();
			PrintDebugMsg(table_name);
			//DataRecordList.Clear();
			//TableInfo.setTableName()
			ResultSetMetaData ms= rs.getMetaData();
			TcuFieldInfoList fil=TableInfo.getFieldInfoList();
			fil.Clear();
			for (int i=1;i<=ms.getColumnCount();i++){
				TcuFieldInfo fi=new TcuFieldInfo();
				fi.setFieldID(Integer.valueOf(i));
				fi.setFieldName(ms.getColumnName(i));
				fi.setDispName(ms.getColumnLabel(i));
				fi.setLength(Integer.valueOf(ms.getColumnDisplaySize(i)));
				//fi.setDataType(ms.getColumnType(i));
				if (IsJavaTypeToDelphi == false) {
					fi.setDataType(Integer.valueOf(ms.getColumnType(i)));
				} else {
					fi.setDataType(Integer.valueOf(JrUtility.JavaTypeToDataType(ms.getColumnType(i))));
				}
				fi.setReadOnly(ms.isReadOnly(i));
				fi.setNull(ms.isNullable(i)==1);
				fi.setAutoInc(ms.isAutoIncrement(i));
				//ms.isSearchable()
				fi.setKey(false);
				//fi.setDefaultValue(ms.)
				//ms.get
				fil.AddItem(fi);
			}
			PrintDebugMsg("Begin get primarykeys");
			if (con!=null){
				PrintDebugMsg("Geting primarykeys");
				DatabaseMetaData  dbMeta = con.getMetaData();
				ResultSet pkRSet = dbMeta.getPrimaryKeys(null, null, table_name);
				while( pkRSet.next() ) {
					PrintDebugMsg("****** Comment ******");
					PrintDebugMsg("TABLE_CAT : "+pkRSet.getObject(1));
					PrintDebugMsg("TABLE_SCHEM: "+pkRSet.getObject(2));
					PrintDebugMsg("TABLE_NAME : "+pkRSet.getObject(3)); 
					PrintDebugMsg("COLUMN_NAME: "+pkRSet.getObject(4)); 
					PrintDebugMsg("KEY_SEQ : "+pkRSet.getObject(5)); 
					PrintDebugMsg("PK_NAME : "+pkRSet.getObject(6)); 
					PrintDebugMsg("****** ******* ******");
					TcuFieldInfo Item=fil.ItemByName((String)pkRSet.getObject(4));
					if (Item!=null){
						Item.setKey(true);						
					}
				} 
				PrintDebugMsg("End get primarykeys");
			}
			TableInfo.setTableName(ms.getTableName(1));

			/*if (rs.next()){
				rs.last();
				int count=rs.getRow();
				rs.first();*/
			TcuBaseItemsSTR stritems=new TcuBaseItemsSTR();
			TcuBaseItemsSTR stritems2=new TcuBaseItemsSTR();
			int DataType=TcuDataType.String;
			int i=0;
			while (rs.next()){				
				TcuDataRecord dr=new TcuDataRecord(stritems);
				for (int j=1;j<=ms.getColumnCount();j++){
					TcuFieldValue fv=new TcuFieldValue(stritems2);
					fv.setFieldName(ms.getColumnName(j));	
					DataType=JrUtility.JavaTypeToDataType(ms.getColumnType(j));
					fv.setDataType(DataType);					
					switch (DataType){
					case TcuDataType.String:{						
						try {
							String tmp=rs.getString(j);
							if (tmp==null){
								fv.setFieldValue("");
							}else{
								fv.setFieldValue(tmp.trim());
							}
						} catch (RuntimeException e) {
							// TODO 自动生成 catch 块
							e.printStackTrace();
							fv.setFieldValue("");
						}
						break;
					}
					case TcuDataType.Text:{						
						try   {   
							Reader   reader   =   rs.getCharacterStream(j);   
							if   (reader   ==   null)   {   
								fv.setFieldValue("");
							}else {   
								StringBuffer   sb   =   new   StringBuffer();   
								char[]   charbuf   =   new   char[4096];   
								for	(int  k =reader.read(charbuf); k>0;k=reader.read(charbuf)) {   
									sb.append(charbuf,   0,   k);   
								}   
								//fv.setFieldValue(rs.getString(j));   
								fv.setFieldValue(sb.toString());
							}
						} catch   (Exception   e)   {   
							fv.setFieldValue("");
						}   

						break;
					}
					case TcuDataType.ByteArray:{
						try {
							byte[] tmp=rs.getBytes(j);
							if (tmp==null){
								fv.setFieldValue("");
							}else{
								fv.setFieldValue(tmp);
							}
						} catch (RuntimeException e) {
							// TODO 自动生成 catch 块
							e.printStackTrace();
							fv.setFieldValue("");
						}
						break;
					}						
					default:{
						try {
							String tmp=rs.getString(j);
							if (tmp==null){
								fv.setFieldValue("");
							}else{
								fv.setFieldValue(tmp.trim());
							}
						} catch (RuntimeException e) {
							// TODO 自动生成 catch 块
							e.printStackTrace();
							fv.setFieldValue("");
						}
						break;
					}
					}
					dr.AddItem(fv);
				}
				DataRecordList.AddItem(dr);
				i++;
				//rs.next();
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return false;
	}
    
	
	
	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}

	public Integer getInsertCount() {
		return InsertCount;
	}

	public void setInsertCount(Integer insertCount) {
		InsertCount = insertCount;
	}

}

⌨️ 快捷键说明

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