Java 对于类型PreparedStatement,未定义方法getInt、getString和getDate
您好,我一直收到此错误: 类型PreparedStatement的方法getInt(String/int/Date)未定义 (这是IDE中为以下各项显示的错误: 以下几行:Java 对于类型PreparedStatement,未定义方法getInt、getString和getDate,java,rest,api,jdbc,prepared-statement,Java,Rest,Api,Jdbc,Prepared Statement,您好,我一直收到此错误: 类型PreparedStatement的方法getInt(String/int/Date)未定义 (这是IDE中为以下各项显示的错误: 以下几行: int placeNo = myStmt.getInt("NR_MIEJSCA"); Date start = myStmt.getDate("START"); Date end = myStmt.getDate("KONIEC");
int placeNo = myStmt.getInt("NR_MIEJSCA");
Date start = myStmt.getDate("START");
Date end = myStmt.getDate("KONIEC");
String userName = myStmt.getString("IMIE_NAZWISKO");
int phone = myStmt.getInt("TELEFON");
以下是我发送特定停车位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 = myStmt.getInt("NR_MIEJSCA");
Date start = myStmt.getDate("START");
Date end = myStmt.getDate("KONIEC");
String userName = myStmt.getString("IMIE_NAZWISKO");
int phone = 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);
}
}
public List getSpecBook(int-id)引发异常{
List books=new ArrayList();
//int idInt=Integer.parseInt(id);
连接myConn=null;
PreparedStatement myStmt=null;
结果集myRs=null;
试一试{
myConn=dataSource.getConnection();
//创建sql语句
String sql=“从'rezerwacje_miejsc'中选择*,其中'NR_MIEJSCA`=?”;
myStmt=myConn.prepareStatement(sql);
myStmt.setInt(1,id);
myRs=myStmt.executeQuery();
while(myRs.next()){
//从结果集行检索数据
int placeNo=myStmt.getInt(“NR_MIEJSCA”);
日期开始=myStmt.getDate(“开始”);
日期结束=myStmt.getDate(“KONIEC”);
字符串用户名=myStmt.getString(“IMIE_-NAZWISKO”);
int phone=myStmt.getInt(“TELEFON”);
//创建新的临时图书对象
Book tempBook=新书(地点编号、开始、结束、用户名、电话);
//把它加到我们的书单上
books.add(tempBook);
}
还书;
}最后{
//清理JDBC对象
关闭(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();
}
}
package com.pbs.web.controller;
导入com.fasterxml.jackson.databind.ObjectMapper;
导入com.pbs.web.jdbc.ParkingBookSystem.Book;
导入com.pbs.web.jdbc.ParkingBookSystem.BookDbUtil;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.PathParam;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
导入javax.ws.rs.core.Response;
导入java.util.List;
@路径(“书籍”)
@产生(MediaType.APPLICATION_JSON)
公共类图书入口控制器{
private BookDbUtil BookDbUtil=new BookDbUtil();
@得到
@路径(“/”)
公共响应getAllBooks()引发异常{
List books=bookDbUtil.getBooks();
ObjectMapper mapper=新的ObjectMapper();
字符串json=mapper.writeValueAsString(books);
返回Response.ok().entity(json.build();
}
@得到
@路径(“/{id}”)
公共响应getSpecBook(@PathParam(“id”)int-id)引发异常{
List books=bookDbUtil.getSpecBook(id);
ObjectMapper mapper=新的ObjectMapper();
字符串json=mapper.writeValueAsString(books);
返回Response.ok().entity(json.build();
}
}
我认为我准备的语句有问题,但我找不到问题所在。
getInt
、getDate
和getString
是方法,而不是PreparedStatement
方法。尝试:
int placeNo = myRs.getInt("NR_MIEJSCA");
Date start = myRs.getDate("START");
Date end = myRs.getDate("KONIEC");
String userName = myRs.getString("IMIE_NAZWISKO");
int phone = myRs.getInt("TELEFON");
您正在对PreparedStatement调用getInt()和getDate()。这些函数不存在:
但是,它们确实存在于ResultSet;):
因此,与此相反:
while (myRs.next()) {
// retrive data from result set row
int placeNo = myStmt.getInt("NR_MIEJSCA");
Date start = myStmt.getDate("START");
Date end = myStmt.getDate("KONIEC");
String userName = myStmt.getString("IMIE_NAZWISKO");
int phone = 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);
}
试试这个:
while (myRs.next()) {
// retrive data from result set row
int placeNo = myRs.getInt("NR_MIEJSCA");
Date start = myRs.getDate("START");
Date end = myRs.getDate("KONIEC");
String userName = myRs.getString("IMIE_NAZWISKO");
int phone = myRs.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);
}