📄 dyquery.java
字号:
* 取出特定行的数据
* @param iRows <p>num of row, int type
* @return String[] <p> value of the exact column , stringArrary type
* @author zhanghan
* @date 2001/4/10
*/
public String[] getValues(int iRows){
if(iRows<iRow)return (String[])vRes.elementAt(iRows);
else{ String [] strtemp = {"-1-1-1"," RowNum beyond the max Row of the resultset!"};return strtemp;}
}
/**
*取得所有行的所有信息
*@return String[][] str[row][column] 所有行的 所有列的信息
*@author zhanghan
*@date 2001/7/25
*/
public String[][] getAllValues(){
String[][] strValues ;
if(iRow<1){
strValues = new String[1][2];
strValues[0][0] = "-1-1-1";
strValues[0][1] = " no resultset in this query!";
}
else {
strValues = new String[iRow][];
for(int i=0;i<iRow;i++)strValues[i] = getValues(i);
}
return strValues;
}
/** get Column Name from vRes
* @return string[] <p>string arrary of the column name
* @author zhanghan
* @date 2001/4/10
*/
public String[] getColumns(){
return (String[])vRes.elementAt(0);
}
/** get Column Num from vRes
* @return int value of the account columns
* @author zhanghan
* @date 2001/4/10
*/
public int getColumnNum(){
return iColumn;
}
/** get Row Num from vRes
* @return int value of the account Rows ,RowNum = Rows+ 1(columns occupy the 0th)
* <p>for example:<p> a set has Rows =19(resultset 0-18) then RowNum=20(0:column,1-19: values)
* @author zhanghan
* @date 2001/4/10
*/
public int getRowNum(){
return iRow;
}
protected int columnNameToNum(String columnName){
int iColumns = -1;
String[] strColumns= getColumns();
for(int i=0;i<iColumn;i++)if(columnName.equalsIgnoreCase(strColumns[i].trim())){iColumns = i; break;}
return iColumns;
}
private String convertData(ResultSet rs, int dataType, int col)
throws SQLException
{
/** convert all kinds of data type in ResultSet to string
* 转换数据类型
* @param rs result set to convert,ResultSet type
* @param dataType type of data,int type
* @param col column number,int type
* @return String
* @author zhanghan
* @date 2001/4/3
*/
String retVal = null;
Integer intObj;
/*ARRAY :2003
BIGINT :-5
BINARY :-2
BIT :-7
BLOB :2004
CHAR :1
CLOB :2005
DATE :91
DECIMAL :3
DISTINCT :2001
DOUBLE :8
FLOAT :6
INTEGER :4
JAVA_OBJECT :2000
LONGVARBINARY :-4
LONGVARCHAR :-1
NULL :0
NUMERIC :2
OTHER :1111
REAL :7
REF :2006
SMALLINT :5
STRUCT :2002
TIME :92
TIMESTAMP :93
TINYINT :-6
VARBINARY :-3
VARCHAR :12
*/
switch(dataType) {
case Types.DATE:
java.sql.Date date = rs.getDate(col);
if(date==null) {retVal=null;break;}
retVal = date.toString();
retVal = retVal.substring(0,retVal.lastIndexOf("."));
break;
case Types.TIME:
java.sql.Time time = rs.getTime(col);
if(time==null) {retVal=null;break;}
retVal = time.toString();
break;
case Types.TIMESTAMP:
java.sql.Timestamp timestamp = rs.getTimestamp(col);
if(timestamp==null) {retVal=null;break;}
retVal = timestamp.toString();
break;
case Types.CHAR:
case Types.VARCHAR:
case Types.LONGVARCHAR:
retVal = rs.getString(col);
if(retVal!=null){
retVal=retVal.trim();
}
break;
case Types.NUMERIC:
case Types.DECIMAL:
java.math.BigDecimal numeric = rs.getBigDecimal(col);
if(numeric==null) {retVal=null;break;}
retVal = numeric.toString();
break;
case Types.BIT:
boolean bit = rs.getBoolean(col);
Boolean boolObj = new Boolean(bit);
retVal = boolObj.toString();
break;
case Types.TINYINT:
byte tinyint = rs.getByte(col);
intObj = new Integer(tinyint);
retVal = intObj.toString();
break;
case Types.SMALLINT:
short smallint = rs.getShort(col);
intObj = new Integer(smallint);
if(intObj==null){retVal=null;break;}
retVal = intObj.toString();
break;
case Types.INTEGER:
int integer = rs.getInt(col);
intObj = new Integer(integer);
if(intObj==null){retVal=null;break;}
retVal = intObj.toString();
break;
case Types.BIGINT:
long bigint = rs.getLong(col);
Long longObj = new Long(bigint);
if(longObj==null){retVal=null;break;}
retVal = longObj.toString();
break;
case Types.REAL:
float real = rs.getFloat(col);
Float floatObj = new Float(real);
if(floatObj==null){retVal=null;break;}
retVal = floatObj.toString();
break;
case Types.FLOAT:
case Types.DOUBLE:
double longreal = rs.getDouble(col);
Double doubleObj = new Double(longreal);
if(doubleObj==null){retVal=null;break;}
retVal = doubleObj.toString();
break;
case Types.BINARY:
case Types.VARBINARY:
case Types.LONGVARBINARY:
byte[] binary = rs.getBytes(col);
retVal = new String(binary);
break;
case oracle.jdbc.driver.OracleTypes.ROWID :
retVal = changeASII(((oracle.sql.ROWID)rs.getObject(col)).stringValue());
break;
default: retVal = rs.getObject(col).toString();
if(retVal!=null){
retVal=retVal.trim();
}
}
if(retVal==null)
{
retVal="";
}
return retVal;
}
/**专门为了rowid转换的方法
*@param String AsII 值的字符串连接
*@return String 转换后的
*/
private String changeASII(String str){
String stemp=null;
char[] c= new char[str.length()/2];
int i=0;
while(str.length()>=2){
//转成16进制的char
c[i] =(char)Integer.parseInt(str.substring(0,2),16);
i++;
str = str.substring(2);
}
stemp=new String(c);
return stemp;
}
/*public static void main(String[] args ){
DYDataSource ds = new DYDataSource();
DYquery dq = new DYquery();
String [] strColumns = new String[5];//列名
strColumns[0] = "C_DABH";//驾驶证档案编码(驾驶证号)
strColumns[1] = "C_XM";//驾驶员姓名
strColumns[2] = "C_SFZJZL_DM";//身份证种类
strColumns[3] = "C_SFZJBH";//身份证号
strColumns[4] = "C_DWZZ";//单位或住址
String tableName = "JSZJBXX";//驾驶员表
int ires = dq.querySql(ds,tableName,strColumns[0],"2101105262",strColumns);
if(ires!=0)System.out.println(dq.getErrString());
else {String [][] s = dq.getAllValues();
for(int i=0;i<dq.getColumnNum();i++)
for(int j=0;j<dq.getRowNum();j++)System.out.println(s[j][i]);}
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -