java JDBC中的数字溢出异常

时间:2014-05-01 08:19:35

标签: java oracle jdbc

此查询返回数字溢出异常。从1到14的值很容易检索,但更大的值(从15开始)不能。

我正在使用ORACLE XE。我该如何解决这个问题?

这是我的代码:

pst=con.prepareStatement("Select * from student where sut_id like 'Kul7Dub514'");
rs=pst.executeQuery();
while(rs.next)
{
    smob.setText(Integer.toString(rs.getInt(15)));
    fmob.setText(Integer.toString(rs.getInt(16)));
    mmob.setText(Integer.toString(rs.getInt(17)));
    col.setText(rs.getString(18));
    address.setText(rs.getString(19));
}

学生表:

create table student ( stu_id varchar(10) primary key, stu_image Blob,
 stu_first_name varchar(20) not null,
 stu_middle_name varchar(20) not null,
 stu_last_name varchar(20) not null,
 fat_first_name varchar(20) not null,
 fat_middle_name varchar(20),
 fat_last_name varchar(20) not null,
 mot_first_name varchar(20),
 mot_middle_name varchar(20),
 mot_last_name varchar(20),
 dob Date,
 gender varchar(6),
 ac_yr varchar(10),
 mobno number(11),
 fatmob number(11),
 motmob number(11),
 edu_center varchar(50),
 address varchar(150) )

2 个答案:

答案 0 :(得分:17)

由于数据库中的数据为Number(11),因此不适合整数。

尝试漫长而rs.getLong(15);

答案 1 :(得分:0)

您很可能不会使用“数字”执行任何数学运算。由于您不将它们视为数字,而是将其视为标识符,因此您应使用Java类型BigDecimal。这是一种与Oracle数据类型NUMBER最相似的类型。或者你也使用jdbc drivers oracle.sql.NUMBER提供的数据类型。