# java.util.Date to java.sql.Date



## uniq (29. Mrz 2008)

Hallo,

Ich möchte ein Datum der Form "dd.MM.yyyy" in ein Access Datenbank eintragen.

Nur mit der umformatierung klappts es bei mir nicht so wie ich es will:

StringToSQLDate(String s) methode gibt nur "null" als rückgabewert.



```
import java.io.IOException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Vector;


public class TableToDB {

    	public static void  main(String args[]) throws IOException { 	
    	
        try {
        	Vector v = new Vector();
        	v.add("1");
        	v.add("25.12.2007"); 
        	v.add("5");
        	v.add("0");

            Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
            String dburl = "jdbc:odbc:MyDat";
            String pw = "xxxx";

            Connection con = DriverManager.getConnection(dburl, "java", pw);

            String s0 = v.elementAt(0).toString();
            Date s1 = StringToSQLDate(v.elementAt(1).toString());
            String s2 = v.elementAt(2).toString();
            String s3 = v.elementAt(3).toString();
            
            
            String inputData = "INSERT INTO Tabelle1 " + "VALUES ("+s0+","+s1+","+s2+","+s3+")";
            
            Statement st = con.createStatement();
            
            st.executeUpdate(inputData); 
            con.close();

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

  
    private static Date StringToSQLDate(String s) {
        
    	Date sqlDate=null;
   	  
         try {
    		SimpleDateFormat sdf=new SimpleDateFormat("dd.MM.yyyy");
    		sqlDate =(Date) sdf.parse(s);
    		
	}
	    catch (Exception e) {
	    	e.printStackTrace();
	}
       return sqlDate;
     }
    
    
}
```

gibt nach der Ausführung:

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date


----------



## André Uhres (29. Mrz 2008)

```
package demo;
/*
 * TableToDB.java
 */
import java.io.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.sql.Date;
public class TableToDB {
    public static void main(String args[]) throws IOException {
        try {
            Vector v = new Vector();
            v.add("1");
            v.add("25.12.2007");
            v.add("5");
            v.add("0");
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String dburl = "jdbc:odbc:MyDat";
            String pw = "xxxx";
            Connection con = DriverManager.getConnection(dburl, "java", pw);
            String s0 = v.elementAt(0).toString();
            Date s1 = StringToSQLDate(v.elementAt(1).toString());
            String s2 = v.elementAt(2).toString();
            String s3 = v.elementAt(3).toString();
            String inputData = "INSERT INTO Tabelle1 " + "VALUES ( ?, ?, ?, ?)";
            PreparedStatement st = con.prepareStatement(inputData);
            st.setString(1, s0);
            st.setDate(2, s1);
            st.setString(3, s2);
            st.setString(4, s3);
            st.executeUpdate();
            con.close();
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private static Date StringToSQLDate(String s) {
        Date sqlDate = null;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
            sqlDate = new Date(sdf.parse(s).getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return sqlDate;
    }
}
```


----------



## uniq (29. Mrz 2008)

super! ..es geht. Danke für die schnelle Antwort.


----------

