|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sourceforge.jtds.jdbc.Support
This class contains static utility methods designed to support the main driver classes.
Implementation notes:
Field Summary | |
private static java.math.BigDecimal |
BIG_DECIMAL_ONE
|
private static java.math.BigDecimal |
BIG_DECIMAL_ZERO
|
private static java.sql.Date |
DATE_ZERO
|
private static java.lang.Double |
DOUBLE_ONE
|
private static java.lang.Double |
DOUBLE_ZERO
|
private static java.lang.Float |
FLOAT_ONE
|
private static java.lang.Float |
FLOAT_ZERO
|
private static char[] |
hex
Hex constants to use in conversion routines. |
private static java.lang.Integer |
INTEGER_ONE
|
private static java.lang.Integer |
INTEGER_ZERO
|
private static java.lang.Long |
LONG_ONE
|
private static java.lang.Long |
LONG_ZERO
|
private static java.math.BigInteger |
MAX_VALUE_28
|
private static java.math.BigInteger |
MAX_VALUE_38
|
private static java.math.BigDecimal |
MAX_VALUE_LONG_BD
|
private static java.math.BigInteger |
MAX_VALUE_LONG_BI
|
private static java.math.BigDecimal |
MIN_VALUE_LONG_BD
|
private static java.math.BigInteger |
MIN_VALUE_LONG_BI
|
private static java.sql.Time |
TIME_ZERO
|
private static java.util.HashMap |
typeMap
Convert java clases to java.sql.Type constant. |
Constructor Summary | |
private |
Support()
|
Method Summary | |
(package private) static int |
calculateNamedPipeBufferSize(int tdsVersion,
int packetSize)
Calculate the buffer size to use when buffering the InputStream
for named pipes.
|
(package private) static java.lang.Object |
castNumeric(java.lang.Object orig,
int sourceType,
int targetType)
|
(package private) static java.lang.Object |
convert(java.lang.Object callerReference,
java.lang.Object x,
int jdbcType,
java.lang.String charSet)
Convert an existing data object to the specified JDBC type. |
static java.lang.Object |
convertLOB(java.lang.Object value)
Converts a LOB to the equivalent Java type, i.e. |
static int |
convertLOBType(int type)
Converts a LOB type constant to the equivalent Java type constant, i.e. |
(package private) static void |
embedData(java.lang.StringBuffer buf,
java.lang.Object value,
boolean isUnicode,
ConnectionJDBC2 connection)
Embed the data object as a string literal in the buffer supplied. |
(package private) static byte[] |
encodeString(java.lang.String cs,
java.lang.String value)
Encode a string into a byte array using the specified character set. |
(package private) static java.lang.String |
getClassName(int jdbcType)
Retrieve the fully qualified java class name for the supplied JDBC Types constant. |
private static ConnectionJDBC2 |
getConnection(java.lang.Object callerReference)
Returns the connection for a given ResultSet ,
Statement or Connection object. |
(package private) static int |
getJdbcType(java.lang.Class typeClass)
Get the JDBC type constant which matches the supplied Class . |
(package private) static int |
getJdbcType(java.lang.Object value)
Get the JDBC type constant which matches the supplied Object type. |
(package private) static java.lang.String |
getJdbcTypeName(int jdbcType)
Get a String describing the supplied JDBC type constant. |
(package private) static java.lang.String |
getParameterDefinitions(ParamInfo[] parameters)
Constructs a parameter definition string for use with sp_executesql, sp_prepare, sp_prepexec, sp_cursoropen, sp_cursorprepare and sp_cursorprepexec. |
(package private) static java.lang.String |
getStatementKey(java.lang.String sql,
ParamInfo[] params,
int serverType,
java.lang.String catalog,
boolean autoCommit,
boolean cursor)
Generates a unique statement key for a given SQL statement. |
static boolean |
isWindowsOS()
Checks the os.name system property to see if it starts
with "windows". |
static java.lang.Throwable |
linkException(java.lang.Exception exception,
java.lang.Throwable cause)
Link the original cause to an Exception .
|
static java.sql.SQLException |
linkException(java.sql.SQLException sqle,
java.lang.Throwable cause)
Link the original cause to an SQLException .
|
static java.sql.SQLWarning |
linkException(java.sql.SQLWarning sqle,
java.lang.Throwable cause)
Link the original cause to an SQLWarning .
|
(package private) static java.math.BigDecimal |
normalizeBigDecimal(java.math.BigDecimal value,
int maxPrecision)
Normalize a BigDecimal value so that it fits within the available precision. |
(package private) static java.lang.String |
substituteParameters(java.lang.String sql,
ParamInfo[] list,
ConnectionJDBC2 connection)
Substitute actual data for the parameter markers to simulate parameter substitution in a PreparedStatement. |
(package private) static java.lang.String |
substituteParamMarkers(java.lang.String sql,
ParamInfo[] list)
Update the SQL string and replace the ? |
static long |
timeFromZone(java.util.Date value,
java.util.Calendar target)
Convert a timestamp from a different Timezone. |
static long |
timeToZone(java.util.Date value,
java.util.Calendar target)
Convert a timestamp to a different Timezone. |
static java.lang.String |
toHex(byte[] bytes)
Convert a byte[] object to a hex string. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private static final java.lang.Integer INTEGER_ZERO
private static final java.lang.Integer INTEGER_ONE
private static final java.lang.Long LONG_ZERO
private static final java.lang.Long LONG_ONE
private static final java.lang.Float FLOAT_ZERO
private static final java.lang.Float FLOAT_ONE
private static final java.lang.Double DOUBLE_ZERO
private static final java.lang.Double DOUBLE_ONE
private static final java.math.BigDecimal BIG_DECIMAL_ZERO
private static final java.math.BigDecimal BIG_DECIMAL_ONE
private static final java.sql.Date DATE_ZERO
private static final java.sql.Time TIME_ZERO
private static final java.math.BigInteger MIN_VALUE_LONG_BI
private static final java.math.BigInteger MAX_VALUE_LONG_BI
private static final java.math.BigDecimal MIN_VALUE_LONG_BD
private static final java.math.BigDecimal MAX_VALUE_LONG_BD
private static final java.math.BigInteger MAX_VALUE_28
private static final java.math.BigInteger MAX_VALUE_38
private static final java.util.HashMap typeMap
private static final char[] hex
Constructor Detail |
private Support()
Method Detail |
public static java.lang.String toHex(byte[] bytes)
bytes
- The byte array to convert.
String
.static java.math.BigDecimal normalizeBigDecimal(java.math.BigDecimal value, int maxPrecision) throws java.sql.SQLException
value
- The decimal value to normalize.maxPrecision
- The decimal precision supported by the server
(assumed to be a value of either 28 or 38).
BigDecimal
.
java.sql.SQLException
- If the number is too big.static java.lang.Object castNumeric(java.lang.Object orig, int sourceType, int targetType)
static java.lang.Object convert(java.lang.Object callerReference, java.lang.Object x, int jdbcType, java.lang.String charSet) throws java.sql.SQLException
callerReference
- an object reference to the caller of this method;
must be a Connection
,
Statement
or ResultSet
x
- the data object to convertjdbcType
- the required type constant from
java.sql.Types
java.sql.SQLException
- if the conversion is not supported or failsstatic int getJdbcType(java.lang.Object value)
value
- The object to analyse.
int
.static int getJdbcType(java.lang.Class typeClass)
Class
.
typeClass
- the Class
to analyse
int
static java.lang.String getJdbcTypeName(int jdbcType)
jdbcType
- The constant to be decoded.
String
.static java.lang.String getClassName(int jdbcType)
jdbcType
- The JDBC Types constant.
String
.static void embedData(java.lang.StringBuffer buf, java.lang.Object value, boolean isUnicode, ConnectionJDBC2 connection) throws java.sql.SQLException
buf
- The buffer in which the data will be embedded.value
- The data object.isUnicode
- Set to true
if Unicode strings should be used, else false
.connection
- The ConnectionJDBC2
object.
java.sql.SQLException
static java.lang.String getStatementKey(java.lang.String sql, ParamInfo[] params, int serverType, java.lang.String catalog, boolean autoCommit, boolean cursor)
sql
- the sql statement to generate the key forparams
- the statement parametersserverType
- the type of server to generate the key forcatalog
- the catalog is required for uniqueness on Microsoft
SQL ServerautoCommit
- true if in auto commit modecursor
- true if this is a prepared cursor
static java.lang.String getParameterDefinitions(ParamInfo[] parameters)
parameters
- Parameters to construct the definition for
static java.lang.String substituteParamMarkers(java.lang.String sql, ParamInfo[] list)
sql
- the SQL containing markers to substitutelist
- the parameter list
String
static java.lang.String substituteParameters(java.lang.String sql, ParamInfo[] list, ConnectionJDBC2 connection) throws java.sql.SQLException
sql
- The SQL containing parameter markers to substitute.list
- The parameter descriptors.connection
- The current connection.
java.sql.SQLException
static byte[] encodeString(java.lang.String cs, java.lang.String value)
cs
- The Charset name.value
- The value to encode.
byte[]
.public static java.sql.SQLWarning linkException(java.sql.SQLWarning sqle, java.lang.Throwable cause)
SQLWarning
.
This convenience method calls linkException(Exception, Throwable)
and casts the result for cleaner code elsewhere.
sqle
- The SQLWarning
to enhance.cause
- The Throwable
to link.
SQLWarning
object.public static java.sql.SQLException linkException(java.sql.SQLException sqle, java.lang.Throwable cause)
SQLException
.
This convenience method calls linkException(Exception, Throwable)
and casts the result for cleaner code elsewhere.
sqle
- The SQLException
to enhance.cause
- The Throwable
to link.
SQLException
object.public static java.lang.Throwable linkException(java.lang.Exception exception, java.lang.Throwable cause)
Exception
.
If running under JVM 1.4+ the Throwable.initCause(Throwable)
method will be invoked to chain the exception, else the exception is
logged via the Logger
class.
Modeled after the code written by Brian Heineman.
exception
- The Exception
to enhance.cause
- The Throwable
to link.
Exception
object.public static long timeToZone(java.util.Date value, java.util.Calendar target)
value
- the timestamp valuetarget
- the Calendar
containing the TimeZone
long
public static long timeFromZone(java.util.Date value, java.util.Calendar target)
value
- the timestamp value.target
- the Calendar containing the TimeZone.
long
.public static java.lang.Object convertLOB(java.lang.Object value) throws java.sql.SQLException
Clob
to
String
and Blob
to byte[]
. If the
value passed is not a LOB object, it is left unchanged and no exception
is thrown; the idea is to transparently convert only LOBs.
value
- an object that may be a LOB
java.sql.SQLException
- if an error occurs while reading the LOB contentspublic static int convertLOBType(int type)
Types.CLOB
to Types.LONGVARCHAR
and
Types.BLOB
to Types.LONGVARBINARY
. If the
type passed is not that of a LOB, it is left unchanged and no exception
is thrown; the idea is to transparently convert only LOB types.
type
- a Types
constant defining a JDBC type, possibly a
LOB
public static boolean isWindowsOS()
os.name
system property to see if it starts
with "windows".
true
if os.name
starts with "windows",
else false
.private static ConnectionJDBC2 getConnection(java.lang.Object callerReference)
ResultSet
,
Statement
or Connection
object.
callerReference
- an object reference to the caller of this method;
must be a Connection
, Statement
or
ResultSet
static int calculateNamedPipeBufferSize(int tdsVersion, int packetSize)
InputStream
for named pipes.
The buffer size is tied directly to the packet size because each request
to the SmbNamedPipe
will send a request for a particular
size of packet. In other words, if you only request 1 byte, the
SmbNamedPipe
will send a request out and only ask for 1 byte
back. Buffering the expected packet size ensures that all of the data
will be returned in the buffer without wasting any space.
tdsVersion
- the TDS version for the connectionpacketSize
- requested packet size for the connection
packetSize == 0
,
else packetSize
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |