resultsetmetadatautil.java

来自「数据库远程同步软件NetBeans项目源文件 项目采用Jdesktop集成组件」· Java 代码 · 共 219 行

JAVA
219
字号
package com.qixuan.jdbc.util;

import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class ResultSetMetaDataUtil {
	private List<ColumnData> columns;
	private List<ColumnData> columnNames;
	private Connection connection;
	private String tableName;
	private int   columnCount;
	public ResultSetMetaDataUtil(Connection connection,String tableName) {
		super();
		this.connection = connection;
		this.tableName=tableName;       
	}
	public ResultSetMetaDataUtil(Connection connection) {
		super();
		this.connection = connection;
	}
	public String getTableName() {
		return tableName;
	}
	public void setTableName(String tableName) {
		this.tableName = tableName;
	}
	public ResultSetMetaDataUtil() {
		super();
		// TODO Auto-generated constructor stub
	}
	private void columnNames(){
		Statement stmt=null;
		try {
			stmt = connection.createStatement();
			ResultSet   rst=stmt.executeQuery("select * from "+tableName+" ;");   
	        java.sql.ResultSetMetaData   meta=rst.getMetaData()     ;   
	        columnCount=meta.getColumnCount();
	        columnNames=new ArrayList<ColumnData>();
	        //columns=new ArrayList<ColumnData>();
	        for(int   i=1;i<columnCount+1;i++)   
	          {   
	        	ColumnData rsmd=new ColumnData();
	        	rsmd.setColumnName(meta.getColumnName(i));
	        	rsmd.setColumnType(typeToString(meta.getColumnType(i)));
	        	rsmd.setColumnTypeValue(meta.getColumnType(i));
	        	//rsmd.setColumnValue(columnValue);//只记录表结构信息
	        	columnNames.add(rsmd);	               
	          }  
	        rst.close();
	        stmt.close();
	       
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}          
	}
    private void columns(){
		Statement stmt=null;
		try {
			stmt = connection.createStatement();
			ResultSet   rst=stmt.executeQuery("select * from     "+tableName+" ;");
	        java.sql.ResultSetMetaData   meta=rst.getMetaData()     ;
	        columnCount=meta.getColumnCount();
	        columnNames=new ArrayList<ColumnData>();	        
	        for(int   i=1;i<columnCount+1;i++)
	          {
	        	ColumnData rsmd=new ColumnData();
	        	rsmd.setColumnName(meta.getColumnName(i));
	        	rsmd.setColumnType(typeToString(meta.getColumnType(i)));
	        	rsmd.setColumnTypeValue(meta.getColumnType(i));
	        	//rsmd.setColumnValue(columnValue);//只记录表结构信息
	        	columnNames.add(rsmd);
	          }
	        rst.close();
	        stmt.close();
	        stmt = connection.createStatement();
		   rst=stmt.executeQuery("select * from   "+tableName+" where record_flag = 0 ;");
           System.out.println("row="+rst.getRow());
		   meta=rst.getMetaData();
	        int j=0;
            columns=new ArrayList<ColumnData>();
	        while(rst.next()){
	        	for(int   i=1;i<columnCount+1;i++){
		        	ColumnData rsmd=new ColumnData();
		        	rsmd.setIndex(i);
		        	rsmd.setColumnName(meta.getColumnName(i));
		        	rsmd.setColumnType(typeToString(meta.getColumnType(i)));
		        	rsmd.setColumnTypeValue(meta.getColumnType(i));
		        	rsmd.setColumnValue(rst.getObject(i));
		        	columns.add(rsmd);
		        }
	        	j++;
	        }

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public List<ColumnData> getColumns() {
        columns();
		return columns;
	}

	public void setColumns(List<ColumnData> columns) {
		this.columns = columns;
	}

	public Connection getConnection() {
		return connection;
	}

	public void setConnection(Connection connection) {
		this.connection = connection;
	}

	

	String typeToString(int i) {
		String ret = "";
		switch (i) {
		case (1):
			ret = "CHAR";
			break;
		case (2):
			ret = "NUMERIC";
			break;
		case (3):
			ret = "DECIMAL";
			break;
		case (4):
			ret = "INTEGER";
			break;
		case (5):
			ret = "SMALLINT";
			break;
		case (6):
			ret = "FLOAT";
			break;
		case (8):
			ret = "DOUBLE";
			break;
		case (12):
			ret = "VARCHAR";
			break;
		case (91):
			ret = "DATE";
			break;
		case (92):
			ret = "TIME";
			break;
		case (93):
			ret = "TIMESTAMP";
			break;
		default:
			ret = "other";
		}
		return ret;
	}

	String getCol(ResultSet rst, int type, int colNum) throws Exception {
		String ret = "";
		switch (type) {
		case (1):
			ret = rst.getString(colNum);
			break;
		case (4):
			ret = String.valueOf(rst.getInt(colNum));
			break;
		case (5):
			ret = String.valueOf(rst.getInt(colNum));
			break;
		case (6):
			ret = String.valueOf(rst.getFloat(colNum));
			break;
		case (8):
			ret = String.valueOf(rst.getDouble(colNum));
			break;
		case (12):
			ret = rst.getString(colNum);
			break;
		default:
			ret = "not   know";
		}
		return trans(ret);
	}

	String trans(String chi) {
		String result = null;
		byte temp[];
		try {
			temp = chi.getBytes("GB2312");
			result = new String(temp);
		} catch (UnsupportedEncodingException e) {
			System.out.println(e.toString());
		}
		return result;
	}
	public List<ColumnData> getColumnNames() {
        columnNames();
		return columnNames;
	}
	public void setColumnNames(List<ColumnData> columnNames) {
		this.columnNames = columnNames;
	}
	public int getColumnCount() {
		return columnCount;
	}
	public void setColumnCount(int columnCount) {
		this.columnCount = columnCount;
	}
	
}

⌨️ 快捷键说明

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