Как вставить данные в базу данных с помощью Java Java MVC

1

Я пытаюсь вставить данные в базу данных с помощью сервлетов Java и mvc. У меня есть класс под названием CheckoutDb, который использует пул соединений и готовые инструкции для вставки данных.

public class CheckoutDb {
 public static int insert(Checkout checkout) {
    ConnectionPool pool = ConnectionPool.getInstance();
    Connection connection = pool.getConnection();
    PreparedStatement ps = null;

    String query
            = "INSERT INTO Checkout (FirstName, LastName, EmailAddress, "
            + "BookTitle, DueDate) "
            + "VALUES (?, ?, ?, ?, ?)";
    try {
        ps = connection.prepareStatement(query);

        ps.setString(1, checkout.getFirstName());
        ps.setString(2, checkout.getLastName());
        ps.setString(3, checkout.getEmailAddress());
        ps.setString(4, checkout.getBookTitle());
        ps.setString(5, checkout.getFormattedDate());
        return ps.executeUpdate();
    } catch (SQLException e) {
        System.out.println(e);
        return 0;
    } finally {
        DBUtil.closePreparedStatement(ps);
        pool.freeConnection(connection);
    }
} 

Проблема, с которой я, похоже, сталкиваюсь, фактически вставляет данные из класса контроллера. Я попытался получить параметры запроса из формы и затем сохранить их в объекте, а затем вызвать метод insert из класса CheckoutDb, но он не будет вставлять какие-либо данные в таблицу. Любая помощь будет принята с благодарностью. Если для отображения требуется больше кода, я при необходимости предоставит вам. Благодарю.

private String doCheckout(HttpServletRequest request,
        HttpServletResponse response) {


    String firstName= request.getParameter("first_name");
    String lastName= request.getParameter("last_name");
    String emailAddress= request.getParameter("email_address");
    String bookTitle= request.getParameter("book_title");
    Checkout checkout=new Checkout();
    Date date= checkout.getDueDate();


    //TODO: Implement code to check out the book here.
    checkout=new Checkout(firstName,lastName,emailAddress,bookTitle,date);
    CheckoutDb.insert(checkout);
    return "/thankyou.jsp";
}
Теги:
database
model-view-controller
insert

1 ответ

0

Решение. После выдачи ps.executeUpdate() вам необходимо указать connection.commit(). Это сделает изменения постоянными в базе данных, и вы сможете увидеть изменения в базе данных с помощью другого соединения. Учебник JDBC (http://docs.oracle.com/javase/tutorial/jdbc/TOC.html) может предоставить вам подробную информацию о том, как управлять транзакциями с использованием commit/rollback.

  • 0
    да удалено ошибка подключения не было запущено, я установил соединение и все отображается правильно, но страница базы данных пуста.
  • 0
    Уважаемый Benzonico, я прошу прощения за эту ложную па. Я новичок в этом. Я буду осторожен в будущем. Спасибо за указание на это. С уважением Сандип
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню