提交 8c17e4e0 编写于 作者: D Dave Cramer

This patch fixes the exception thrown to inform the user the method

getColumnClassName(int) is not implemented. This will futher fixes method
ResultSet.getObject(int) since it requires the getColumnClassName(int) method to return the proper java class used to map the database column.

auther Ed Yu
上级 deaad934
......@@ -473,6 +473,64 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
// This can hook into our PG_Object mechanism
public String getColumnClassName(int column) throws SQLException
{
/*
The following data type mapping came from ../Field.java.
"int2",
"int4","oid",
"int8",
"cash","money",
"numeric",
"float4",
"float8",
"bpchar","char","char2","char4","char8","char16",
"varchar","text","name","filename",
"bool",
"date",
"time",
"abstime","timestamp"
Types.SMALLINT,
Types.INTEGER,Types.INTEGER,
Types.BIGINT,
Types.DOUBLE,Types.DOUBLE,
Types.NUMERIC,
Types.REAL,
Types.DOUBLE,
Types.CHAR,Types.CHAR,Types.CHAR,Types.CHAR,Types.CHAR,Types.CHAR,
Types.VARCHAR,Types.VARCHAR,Types.VARCHAR,Types.VARCHAR,
Types.BIT,
Types.DATE,
Types.TIME,
Types.TIMESTAMP,Types.TIMESTAMP
*/
int sql_type = getField(column).getSQLType();
switch (sql_type)
{
case Types.BIT:
return("java.lang.Boolean");
case Types.SMALLINT:
return("java.lang.Integer");
case Types.INTEGER:
return("java.lang.Integer");
case Types.BIGINT:
return("java.lang.Long");
case Types.NUMERIC:
return("java.math.BigDecimal");
case Types.REAL:
return("java.lang.Float");
case Types.DOUBLE:
return("java.lang.Double");
case Types.CHAR:
case Types.VARCHAR:
return("java.lang.String");
case Types.DATE:
case Types.TIME:
case Types.TIMESTAMP:
return("java.sql.Timestamp");
default:
throw org.postgresql.Driver.notImplemented();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册