Jan Burse wrote:
> Dear All
>
> I was just looking up the source code of the jTDS driver.
> It seems that it is tra****ng the heap with java.lang
> wrapper cl*****, even when one is using only primitive
> types in his application.
Why do you call this "tra****ng the heap"?
> For example, when I am doing, whereas the column
> is integer:
>
> ResultSet set;
> set.getLong(1);
>
> This amounts to a call to:
>
> public long getLong(int columnIndex) throws SQLException {
> return ((Long) Sup****t.convert(con, getColumn(columnIndex),
> java.sql.Types.BIGINT, null)).longValue();
> }
>
> During the above call a Long object will be created, as
> can be seen from the convert implementation:
Yes, so?
> A solution would be to do the following
> call on the result set:
A solution to what? You have yet to present a problem.
> (long)set.getInt(1);
>
> But what if I want to make the code, lets say column
> size independent, and want to use a getLong() call
> only.
Then just use that call.
> Does this tra****ng happen in every JDBC driver?
This is not "tra****ng". Why do you call it that?
It is likely that all JDBC drivers convert SQL types to reference types in
Java. Every column is required to work with ResultSet#getObject() and to
handle the possibility of a (SQL) NULL value in the column. NULL is not
in
the domain of primitive values, so the driver really must use a reference
type.
> Are there alternatives to jTDS, when accessing
> MS SQL Databases?
jTDS is a stable, performant, high-quality product. I doubt you'll find
better.
What is the problem? You never stated a problem.
--
Lew


|