gpt4 book ai didi

java.lang.ClassCastException : org. apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement 无法转换为 java.sql.ResultSet

转载 作者:行者123 更新时间:2023-11-30 06:01:41 25 4
gpt4 key购买 nike

您好,我在使用 API URL 获取预订的特定 parking 位号码列表时不断收到此错误,这是错误:

java.lang.ClassCastException:org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement 无法转换为 java.sql.ResultSet

这是我发送特定 parking 位 ID 查询的方法:

    public List<Book> getSpecBook(int id) throws Exception {
List<Book> books = new ArrayList<>();

//int idInt = Integer.parseInt(id);

Connection myConn = null;
PreparedStatement myStmt = null;
ResultSet myRs = null;

try {
myConn = dataSource.getConnection();

// create sql statement
String sql = "SELECT * FROM `rezerwacje_miejsc` WHERE `NR_MIEJSCA`=?";

myStmt = myConn.prepareStatement(sql);
myStmt.setInt(1, id);

myRs = myStmt.executeQuery();

while (myRs.next()) {
// retrive data from result set row
int placeNo = ((ResultSet) myStmt).getInt("NR_MIEJSCA");
Date start = ((ResultSet) myStmt).getDate("START");
Date end = ((ResultSet) myStmt).getDate("KONIEC");
String userName = ((ResultSet) myStmt).getString("IMIE_NAZWISKO");
int phone = ((ResultSet) myStmt).getInt("TELEFON");

// create new temporary Book object
Book tempBook = new Book(placeNo, start, end, userName, phone);

// add it to our list of Books
books.add(tempBook);
}

return books;

} finally {
// clean up JDBC objects
close(myConn, myStmt, myRs);
}
}

这是我的 API 类:

package com.pbs.web.controller;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.pbs.web.jdbc.ParkingBookSystem.Book;
import com.pbs.web.jdbc.ParkingBookSystem.BookDbUtil;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.List;

@Path("books")
@Produces(MediaType.APPLICATION_JSON)
public class BookingRestController {
private BookDbUtil bookDbUtil = new BookDbUtil();

@GET
@Path("/")
public Response getAllBooks() throws Exception {
List<Book> books = bookDbUtil.getBooks();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(books);
return Response.ok().entity(json).build();
}

@GET
@Path("/{id}")
public Response getSpecBook(@PathParam("id") int id) throws Exception {
List<Book> books = bookDbUtil.getSpecBook(id);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(books);
return Response.ok().entity(json).build();
}
}

我找不到问题。

最佳答案

你正在写这样的行

       int placeNo = ((ResultSet) myStmt).getInt("NR_MIEJSCA");

这显然是您收到错误的地方。该错误表明语句无法转换为结果集,而此处您正尝试将语句转换为结果集。

我无法理解为什么您会认为您会以这种方式访问​​结果集,特别是考虑到您已经完成了从语句中获取结果集的工作。它位于您的变量 myRs 中。

你可能想要

       int placeNo = myRs.getInt("NR_MIEJSCA");

(其他行也类似)。

关于java.lang.ClassCastException : org. apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement 无法转换为 java.sql.ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52156026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com