Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!nx02.iad01.newshosting.com!newshosting.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!86597e80!not-for-mail From: "Lew" Subject: Re: jTDS, trashes heap wi Message-ID: X-Comment-To: comp.lang.java.databases Newsgroups: comp.lang.java.databases In-Reply-To: References: Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.15a-Win32 NewsLink 1.92] Lines: 65 Date: Wed, 27 Apr 2011 15:21:43 GMT NNTP-Posting-Host: 96.60.20.240 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1303917703 96.60.20.240 (Wed, 27 Apr 2011 10:21:43 CDT) NNTP-Posting-Date: Wed, 27 Apr 2011 10:21:43 CDT Organization: TDS.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.databases:94 To: comp.lang.java.databases Jan Burse wrote: > Dear All > > I was just looking up the source code of the jTDS driver. > It seems that it is trashing the heap with java.lang > wrapper classes, even when one is using only primitive > types in his application. Why do you call this "trashing 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) Support.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 trashing happen in every JDBC driver? This is not "trashing". 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 --- * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet! --- Synchronet 3.15a-Win32 NewsLink 1.92 Time Warp of the Future BBS - telnet://time.synchro.net:24