【发布时间】:2011-10-17 05:21:38
【问题描述】:
我使用的是 Netbeans 6.9.1 和 glassfish 3.1,数据库是 MySql。
数据库中有一个名为HotelNames 的表,我需要编写一个 SQL 并传递酒店名称以获取其酒店 ID。我得到一个我无法解决的异常。
@Override
public int GetHotelID(String hotellName) {
Query query = em.createNativeQuery("select ID from HotelNames where hotName ='"+ hotellName+"'");
String hotelID = (String) query.getSingleResult();
return Integer.parseInt(hotelID );
}
我得到的异常指向我在上面代码中编写的 SQL
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.String
MySQL 创建表的样子;
CREATE TABLE HotelNames (`ID` BIGINT NOT NULL AUTO_INCREMENT, `hotName` VARCHAR(255), PRIMARY KEY (`ID`));
我认为是因为 SQL 中的 BIGINT 和代码中的 int 导致了这个问题,但我无法解决这个问题。
【问题讨论】:
-
错误不在返回中,它在上面的行中。但是,您为什么尝试将 BigInt 解析为 String,然后解析为 Int?
标签: java mysql sql exception bigint