PDA

View Full Version : عدم ذخيره تاريخ تو بانك



Java_lightt
شنبه 06 تیر 1388, 11:56 صبح
سلام
مشكل اين كد چيه ؟


Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/DB1?user=root&password=");
}
catch(Exception e)
{
System.err.print("Error1");
}

Statement statement = null;
try
{
statement = (Statement) con.createStatement();
}
catch(Exception ex)
{
System.err.print("Error2");
}
if(statement == null)
System.out.println("statement is null!");
try{
java.util.Date now =new java.util.Date();
DateFormat DF= DateFormat.getDateInstance();
statement.execute("insert into register values('"+FName+"','"+LName+"','"+now+"')");
}
catch(Exception ex)
{
System.err.print("Error3"+ex.getMessage());
}

تاريخ رو تو بانك ذخيره نميكنه!!!
ولي اينو قبول ميكنه:


statement.execute("insert into register values('"+FName+"','"+LName+"','1999-1-1')");

cups_of_java
شنبه 06 تیر 1388, 13:16 عصر
این دستور


statement.execute("insert into register values('"+FName+"','"+LName+"','"+now+"')");
تاریخ رو به صورت String جاوایی داره میفرسته به insert و احتمالن دیتابیستون قبول نمی کنه. به جای این از PreparedStatement استفاده کنید.
اون جا از متد prepare استفاده می کنید و query رو به صورت


preparedStatement.prepare("insert into register values(?,?,?)");
می دین! بعدش به جای علامت سوال مقادیر رو set می کنید:


preparedStatement.setString( 1, Fname );
preparedStatement. setString( 2, Lname );
preparedStatement. setDate( 3, now);
preparedStatement.execute();

برای اطلاعات دقیق تر گوگل کنید روش، مثال پیدا می کنید.

Java_lightt
شنبه 06 تیر 1388, 14:53 عصر
سلام
ممنون از راهنماييتون.ولي از

preparedStatement. setDate( 3, now);

ايراد ميگيره . كامپايل نميكنه.

The method setDate(int, Date) in the type PreparedStatement is not applicable for the arguments (int, Date)

javaphantom
شنبه 06 تیر 1388, 15:23 عصر
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
try {
Date date = sdf.parse("2009.10.13");

/// now you can add date format to your database

} catch(Exception e) {
e.printStackTrace();
}


دوست دارم بقیشو خودت بری

cups_of_java
شنبه 06 تیر 1388, 21:32 عصر
سلام
ممنون از راهنماييتون.ولي از

preparedStatement. setDate( 3, now);
ايراد ميگيره . كامپايل نميكنه.

The method setDate(int, Date) in the type PreparedStatement is not applicable for the arguments (int, Date)

اگه اشتباه نکنم باید به جای java.util.Date باید از java.sql.Date استفاده کنید. اگه پیام خطا را درست و با دقت مطالعه کنید می تونین خودتون مشکلاتتون رو حل کنید.