如何在mysql中转换字符串类型(java)并存储日期数据类型?

时间:2012-04-14 15:23:58

标签: java mysql date

我想从Form中插入值到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);
    }

5 个答案:

答案 0 :(得分:0)

要将字符串转换为java.util.Date对象,您需要DateFormat(例如SimpleDateFormat

  • mask the input field使用所需的日期格式或使用日历组件。
  • 使用dateFormat.parse(..)将字符串转换为Date

答案 1 :(得分:0)

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

的字符串

答案 2 :(得分:0)

您需要传递java.util.Date。您可以使用SimpleDateFormatDate解析String

您的代码可能如下所示:

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);

注意:

  • 您需要选择适合您用户的日期格式。有关您有哪些选项的详情,请参阅the javadoc
  • 您需要决定如何处理错误输入并对其进行编码(抛出异常,或向其显示消息等)
  • 作为一种风格问题,请避免使用s1s2等变量名称。它们会导致不可读性,从而导致错误:使用name,{{1}等专有名称等等,或者内联它们(即删除它们并直接使用初始化它们的代码)

答案 3 :(得分: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));

    }
}

答案 4 :(得分: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);