gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:24 24 4
gpt4 key购买 nike

我正在尝试使用 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/

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