JAVA,检索值时出现SQL异常

标签 java mysql sql exception bigint

我使用的是 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 导致的,但我无法解决这个问题。

最佳答案

你可能想做这样的事情

Number hotelID =  (Number) query.getSingleResult();
return hotelID.intValue();

关于JAVA,检索值时出现SQL异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6894998/

相关文章:

java - 音频WAV文件在Java中不再起作用

sql - 创建一个启用/禁用(取决于传递的参数)所有外键的存储过程(DB2,V10.5)

php - 地理编码 - 获取位置

c# - 如何在asp.net mvc中使用 Entity Framework 在父表中创建外键并将其分配给子表

MySQL 查询同一列两次

C#计算sql结果中的行数

java - IntFunction<String> 和 Function<Integer, String>

java - 如何使用虚线作为单元格边框?

JAVA API Servlet异步调用

php - MySql 喜欢不工作