当前位置: 首页 > 面试题库 >

从表单获取日期并将其保存到数据库并列出产品

夏意蕴
2023-03-14
问题内容

我正在尝试创建一个页面,该页面可以列出保存在数据库中的产品,然后客户可以查看可用产品的列表。我遇到的问题是Java中的日期。

package servlets;

import bean.ProductBean;
import db.JavaConnect;
import helper.ProductHelper;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AddNewProduct extends HttpServlet {

    public static final String Addproduct = "Addproduct";
    public static final String productfailed = "productfailed";

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            ProductBean addproduct = new ProductBean();
            ProductHelper.populateaddproduct(addproduct, request);
            addproduct(addproduct);
            request.setAttribute(Addproduct, addproduct);
        }

        catch (Throwable ex) {
            Logger.getLogger(AddNewProduct.class.getName()).log(Level.SEVERE, null, ex);
            request.setAttribute(productfailed, ex);
        }
        request.getRequestDispatcher("Addproductstatus.jsp").forward(request, response);
    }

    public void addproduct(ProductBean addproduct) throws ApplicationException {
         Connection conn = null;
         PreparedStatement pst = null;
         Statement rowIDStmt = null;
         ResultSet rs = null;
         try {
             conn = JavaConnect.ConnectDb();
            String sql = "INSERT INTO products(EAN,PIP,name,description,supplier,price,expiryDate,latest,discount)VALUES(?,?,?,?,?,?,?,?,?)";
             pst = conn.prepareStatement(sql);
             pst.setString(1, addproduct.getEan());
             pst.setString(2, addproduct.getPip());
             pst.setString(3, addproduct.getName());
             pst.setString(4, addproduct.getDescription());
             pst.setString(5, addproduct.getSupplier());
             pst.setDouble(6, addproduct.getPrice());

             // problem here
             java.sql.Date sqlDate = new java.sql.Date(addproduct.getExpiryDate().getTime());
             pst.setDate(7,addproduct.getExpiryDate());

             pst.setString(8, addproduct.getLatest());
             pst.setString(9, addproduct.getDiscounted());

             pst.executeUpdate();
             rowIDStmt = conn.createStatement();
rs = rowIDStmt.executeQuery("SELECT last_insert_rowid()");
rs.next();
             Integer autoIncreamentId = rs.getInt(1);
             Logger.getLogger(AddNewProduct.class.getName()).log(Level.INFO,
 "Successfully inserted row with id {0}", autoIncreamentId);
         } 
catch (Throwable t)
 {
             throw new ApplicationException(t.getMessage(), t);
         } 
finally {
             JavaConnect.close(null, rowIDStmt, rs);
             JavaConnect.close(conn, pst, null);
         }
     } // end catch }

我收到的错误消息是

no suitable method found for setDate(int.java.util.date)
method prepared statement.setDate(int.java.sql.date,Calender) is not applicable.
method prepared statement.setDate(int.java.sql.Date) is not applicable and cannot be converted to java.sql.date by method invocation.

有人可以告诉我怎么了吗?


问题答案:

更换

  java.sql.Date sqlDate = new java.sql.Date(addproduct.getExpiryDate().getTime());   
  pst.setDate(7,addproduct.getExpiryDate());

通过

java.sql.Date sqlDate = new java.sql.Date(addproduct.getExpiryDate().getTime()); 
pst.setDate(7,sqlDate);


 类似资料:
  • 下面是我的文本文件: 这是我的代码片段: 我得到以下异常: 我该怎么办?

  • 我在mysql中有一个名为apply(id,user,time_apply)的数据库。我已将time_apply的结构设置为“datetime” 我有一个php脚本,它试图从用户的pc中获取当前的日期和时间,并将其存储在我的数据库中。用户的pc可以在世界任何地方。 问题是在执行mysql_query之后,我无法在数据库中插入当前用户的日期和时间。我得到的是:0000-00-00 00:00:00

  • 我试过这个: 首先,我获得了数据库中所有数据的引用,我正在尝试获取它,但我不知道如何实现这一点。 此外,当我这样做时,它会抛出以下错误: java.lang.NullPoInterException:尝试在.laramira.atellez.moroninfo.models.newsviewholder$1$1.ondatachange(newsviewholder.java:48)在com.go

  • 问题内容: 我从SQL获取数据并将其放在列表中。这就是我现在正在尝试的 这就是我从sql获取数据的方式, 桌子看起来像这样 aID,bID,名称 ** 问题 ** 我被困在如何将项目添加到列表中,这 也是最佳实践吗? 问题答案:

  • 我想创建一个包含类别的列表,并将类别悬停在需要显示子类别的类别上。我能够在列表中显示父类别。但我不知道如何获得子类别。在我的表中有category\u id、parent\u id列和一些其他列。如果父类别id为“0”,则它是主类别,对于子类别,它包含类别id。因此,现在我需要显示主类别的子类别。我不明白该如何进行。谁能给我提建议。

  • 问题内容: 我需要从XML文件中获取数据并将其存储到MySQL数据库中。我正在考虑使用SAX解析器来解析数据,但是我不确定如何将数据有效地存储到数据库中,我正在考虑使用JDBC和Hibernate等少数技术,但是我想问一问有效的处理方式它? 注意:此处的编程语言是Java。 问题答案: 您可以使用Castor witch是一个开放源数据绑定框架,用于将数据从XML移动到Java编程语言对象以及从J