Это сбило меня с ума, и я уверен, что это что-то простое. Я получаю сообщение «значения должны содержать хотя бы один элемент» от сервера, когда я пытаюсь ввести резервирование из таблицы, которая появляется. Все работает нормально. Независимо от того, использую ли я кавычки в разделе VALUES или плюс (+) символы или кавычки над разделительными запятыми, я получаю разные сообщения об ошибках. Когда я помещаю кавычки через table_num, я получаю сообщение об ошибке, говоря, что вы не можете вставить CHAR в INTEGER. Когда я удаляю кавычки, я получаю сообщение об ошибке - Severe: java.sql.SQLSyntaxErrorException: Столбец «TABLE_NUM» либо не находится ни в одной таблице в списке FROM, либо появляется в спецификации соединения и т. Д. Может ли кто-нибудь сказать мне, что происходит? Вот код jsp. Заранее спасибо.Вставка резервирования в базу данных
<%
int tableNum = 0;
String firstName = null;
String lastName = null;
String Address = null;
int Phone = 0;
java.sql.Date date = null;
int People = 0;
if (request.getParameter("table_num")!=null){
tableNum = Integer.parseInt(request.getParameter("table_num"));
}
if (request.getParameter("first")!=null){
firstName = request.getParameter("first");
}
if (request.getParameter("last")!=null){
lastName = request.getParameter("last");
}
if (request.getParameter("address")!=null){
Address = request.getParameter("address");
}
if (request.getParameter("phone")!=null){
Phone = Integer.parseInt(request.getParameter("phone"));
}
if (request.getParameter("date")!=null){
java.util.Date utilDate = new java.util.Date(request.getParameter("date"));
date = new java.sql.Date(utilDate.getTime());
}
if (request.getParameter("people")!=null){
People = Integer.parseInt(request.getParameter("people"));
}
if(tableNum != 0 && firstName != null && lastName != null && Address != null && Phone != 0 && date != null && People != 0){
String URL = "jdbc:derby://localhost:1527/Reservations";
String USERNAME= "johnpaul";
String PASSWORD= "purlease";
Connection myCon = null;
Statement ste = null;
PreparedStatement preparedStmt = null;
try{
Class.forName("org.apache.derby.jdbc.ClientDriver");
System.out.println("Connecting to DB...");
Connection con=DriverManager.getConnection("jdbc:derby://localhost:1527/Reservations","johnpaul", "purlease");
System.out.println("Connected successfuly");
System.out.println("Inserting records into table");
Statement st = con.createStatement();
String query = "INSERT INTO JOHNPAUL.CUSTOMER_RESERVATIONS(TABLE_NUM,FIRST_NAME,LAST_NAME,ADDRESS,TELEPHONE,DATE,NUMBER_IN_PARTY)VALUES(table_num,first,last,address,phone,date,people)";
st.executeUpdate (query);
System.out.println("Records inserted");
}catch(SQLException se){
se.printStackTrace();
}catch(ClassNotFoundException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}
}
%>
Спасибо Ли. Я его отсортировал. Сейчас проблема с датой. Все работает хорошо, когда я удаляю весь ref на сегодняшний день в jsp-коде, и записи вставляются в DB. Bur получает сообщение об ошибке, сообщающее мне: «Столбцы типа« DATE »не могут хранить значения типа« INTEGER »при оставлении всего кода даты. –