resultsetmetadatautil.java#1.2
来自「数据库远程同步软件NetBeans项目源文件 项目采用Jdesktop集成组件」· 2 代码 · 共 240 行
2
240 行
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;
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();
stmt = connection.createStatement();
rst=stmt.executeQuery("select * from "+tableName+" where record_flag = 0 ;");
meta=rst.getMetaData();
int j=0;
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();
}
}
private void columns(){
Statement stmt;
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();
stmt = connection.createStatement();
rst=stmt.executeQuery("select * from "+tableName+" where record_flag = 0 ;");
meta=rst.getMetaData();
int j=0;
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() {
if(columns==null){
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() {
if(columnNames==null){
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 + -
显示快捷键?