java - 如何使用java mvc向数据库插入数据

标签 java database model-view-controller insert

我正在尝试使用 java servlet 和 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);
    }
} 

我遇到的问题实际上是从 Controller 类插入数据。我尝试从表单获取请求参数,然后将它们存储到对象中,然后从 CheckoutDb 类调用 insert 方法,但它不会将任何数据插入到表中。任何帮助将不胜感激。如果需要更多代码来显示,我会根据需要提供。谢谢。

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";
}

最佳答案

解决方案: 发出 ps.executeUpdate() 后,您需要发出 connection.commit()。这将使更改永久保留在数据库中,并且您将能够使用另一个连接查看数据库中的更改。 JDBC 教程 ( http://docs.oracle.com/javase/tutorial/jdbc/TOC.html ) 可以为您提供有关如何使用提交/回滚管理事务的详细信息。

关于java - 如何使用java mvc向数据库插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182860/

相关文章:

authentication - OWIN - Authentication.SignOut() 似乎没有删除 cookie

java - 如何在JTable中显示图片?

php - 将内容加载到应用程序的最佳方式

java - 如何从 no-gui 类实时更新 Java Jframe 控件

用户注册时 Java UserList 未正确填充

python - psycopg2:使用外键插入时出错

java - TextView 类型未定义方法 getBytes()

java - 线程 "main"java.lang.NoClassDefFoundError : org/springframework/dao/InvalidDataAccessApiUsageException 中出现异常

java - PreparedStatement.addBatch() 可以用于 SELECT 查询吗?

mysql - 使用 setMaxResults 和 native 查询创建的 SQL 查询不正确