A defected connector/j 3.1.4 beta is used when the project is initially created. It failed to map unsigned bigint to java.math.BigInteger. Thanks a lot for your assistance.
On 10/28/05, Jeff Butler <[EMAIL PROTECTED]> wrote: > I've tried your exact example (as close as I can replicate), and don't have > any errors - and the values comes back as expected. MySql returns a Long > for signed bigint fields, and a BigInteger for unsigned bigint fields. > > If your database field is unsigned, then you must set the type in your POJO > to "Object" and cast it yourself to BigInteger. If the database field is > signed, then either Long or long will work. I did get a weird result when I > tried the Long/unsigned combination (as expected - there is a loss of > precision in that case). > > I tried it with MySQL 5.0.15, and connector/j 3.1.11. > > HTH - > Jeff Butler > > On 10/26/05, Siming Weng <[EMAIL PROTECTED]> wrote: > > Hi, > > > > The problem still exists. Here's my situation: > > > > I have a field in table in MySQL, unsigned bigint(20) time_stamp > > I have a result class which has a member "private long timeStamp" > > > > ... > > <result property="timeStamp" column="time_stamp"/> > > ... > > > > the value in database is 1428387426 whose binary format is > > 1010101001000110111011001100010 > > > > the value in my result class is 7094897110947987456 whose binary > > format is > 110001001110110001000110101010100000000000000000000000000000000 > > > > if I changed time_stamp to unsigned, it works fine. I've even tried > > "private Object timeStamp" but the runtime class of timeStamp is still > > java.lang.Long. > > > > Is it an issue of iBatis? > > > > On 10/26/05, Jeff Butler <[EMAIL PROTECTED] > wrote: > > > iBATIS does not have a type handler for BigInteger - because there is no > > > "getBigInteger()" method on a result set. iBATIS will call getObject() > if > > > it doesn't know what the data type is ( i.e. if you use a Map as a > result, or > > > if the property in your result class is of type Object) - then you could > > > cast it yourself. This will mimic what you are doing in JDBC. > > > > > > Jeff Butler > > > > > > > > > On 10/26/05, Siming Weng <[EMAIL PROTECTED] > wrote: > > > > Hi, > > > > > > > > I'm trying to map a table field of unsigned bigint to long value in > > > > java. But it always give wrong numbers looks like being overflow. Pure > > > > JDBC code can return the correct value. > > > > > > > > JDBC documenation says RecordSet.getObject(int columnIndex) will > > > > return a java.math.BigInteger if the field is unsigned bigint. But it > > > > seems iBatis doesn't support BigInteger. > > > > > > > > did anyone experience the same problem? > > > > > > > > Cheers, > > > > > > > > Simon > > > > > > > > > > > > > >