как вставить значение BigInteger в базу данных оракула - PullRequest
0 голосов
/ 21 июня 2010

Я пытаюсь вставить значение BigInteger в базу данных Oracle. Я пытаюсь так:

BigInteger a=new BigInteger("4280972057205720579205792572075927209857");
String str=new String(a.toByteArray());

сейчас в базе данных:

 PerparedStatement pstmt=con.prepareStatement("insert into database values(?)");
 pstmt.setString(1,str);
pstmt.executeUpdate();

если я использую str="hello", тогда он работает нормально. Но если я использую str=new String(a.toByteArray()), тогда в базу данных не вставляется ничего (ноль). Почему это так? 1009 *

Ответы [ 2 ]

3 голосов
/ 21 июня 2010

Документация для BigInteger.toByteArray():

Возвращает байтовый массив, содержащий двоичное представление этого BigInteger. Массив байтов будет иметь порядок байтов с прямым порядком байтов: самый старший байт находится в нулевом элементе.

Это не имеет ничего общего с представлением его в десятичном виде! Вы хотите использовать BigInteger.toString(), чтобы получить строку.

0 голосов
/ 04 июня 2012

Используйте метод toString ()

String str=a.toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...