0

我想将 JForm 中的值插入 mysql 数据库。但我无法将值插入日期字段。此代码在日期字段之外有效。有人能帮我吗..

            String s1=txtUsername.getText();
            String s2=txtPassword.getText();
            String s3=txtName.getText();
            String s4=txtAddress.getText();
            String s5=txtContractEndDetails.getText();


            connection getcon = new connection();
            Connection conn;


    try{
        conn=getcon.creatConnection();

             String sql="insert into TravelGuide(username,password,name,address,contract_end_date)values(?,?,?,?,?)";

             PreparedStatement stmt = conn.prepareStatement(sql);
          java.sql.Date dtValue = java.sql.Date.valueOf(s5); 

           stmt.setString(1, s1);


          stmt.setString(2, s2);

          stmt.setString(3, s3);
           stmt.setString(4, s4);

        stmt.setDate(5, s5);

           stmt.executeUpdate();



        }


    catch(Exception ex){
        JOptionPane.showMessageDialog(PanelTG, ex.getMessage(),"Error Occured 123",2);
    }
4

5 回答 5

0

由于您使用的是 MySQL DB,因此您需要将 s5 变量字符串格式化为 yyyy-mm-dd 日期。您可以使用 dateFormat 对其进行格式化。或者确保你的 s5 变量应该包含这样的字符串 '2000-06-30'

于 2012-04-14T15:38:12.487 回答
0

为了把一个字符串变成一个java.util.Date对象,你需要一个DateFormat(例如SimpleDateFormat

于 2012-04-14T15:32:23.903 回答
0

你需要通过一个java.util.Date. 您可以使用aDate从 a解析a 。StringSimpleDateFormat

您的代码可能如下所示:

String s5 = txtContractEndDetails.getText();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date contractEndDate = null;
try {
     contractEndDate = simpleDateFormat.parse(s5);
} catch (ParseException e) {
    // handle telling the user they have bad input
}
stmt.setDate(5, contractEndDate);

笔记:

  • 您需要选择适合您的用户的日期格式。有关您有哪些选项的更多信息,请参阅javadoc
  • 您需要决定如何处理错误输入并对其进行编码(抛出异常或向他们显示消息等)
  • 作为风格问题,请避免使用变量名s1,例如s2等。它们会导致不可读,从而导致错误:使用正确的名称name,例如address等,或内联它们(即删除它们并直接使用初始化它们的代码)
于 2012-04-14T15:45:33.543 回答
0

让我给你基本的去扔如何转换字符串类型的数据,即我们从网页/HTML页面获取数据,然后用java处理数据,然后将其插入Mysql的DB。下面只是一段代码。

        String d = req.getParameter("dob");       
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
        java.util.Date convertedDate =  formatter.parse(d);
        java.sql.Date date1 = new java.sql.Date(convertedDate.getTime());
        prestat.setDate(3,  date1);
于 2017-05-04T10:48:38.750 回答
0
public class Test {

    public static void main(String[] args){
        Date date = new Date();

        DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String newDate = simpleDateFormat.format(date);
        System.out.println("DateIn String datatype = "+newDate);

        System.out.println("DateIn Date datatype = "+java.sql.Date.valueOf(newDate));

    }
}
于 2015-12-25T13:34:10.843 回答