2014-09-12 1 views
0

날짜 값이 "dd/MM/yyyy"형식의 문자열이 있습니다. 어떻게 mysql 데이터베이스에 삽입 할 수 있습니다 (나는 이미 입력 된 날짜 형식으로 내 테이블에 날짜 열을 만들었습니다). 다음을 시도했지만 실패하고 오류가 발생했습니다 (기호를 찾을 수 없음).날짜를 문자열로 변환 할 수 없으므로 mysql 데이터베이스에 삽입 할 수 없습니다.

SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy"); 
java.sql.Date d=new java.sql.Date(format.parse(p_date).getTime()); 

내 전체 코드는 다음과 같다 :

public int save_paper_rec(String a_id, String title, String p_code, String  p_date, String p_time, String p_type, String s_p, String s_n,String m_p,String m_n,String p_ins) 
{ 
    int aid=Integer.parseInt(a_id); 
    float sp=Float.parseFloat(s_p); 
float sn=Float.parseFloat(s_n); 
    float mp=Float.parseFloat(m_p); 
    float mn=Float.parseFloat(m_n); 

    int i=0; 
    SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy"); 
java.sql.Date d=new java.sql.Date(format.parse(p_date).getTime()); 


try 
{ 

Connection con=DriverManager.getConnection(url,"root",""); 
Statement s=con.createStatement(); 
i=s.executeUpdate("insert into paper_record(a_id,title,p_code,p_date,p_time,p_type,s_p,s_n,m_p,m_n,p_ins) values('"+aid+"','"+title+"','"+p_code+"','"+d+"','"+p_time+"','"+p_type+"','"+sp+"','"+sn+"','"+mp+"','"+mn+"','"+p_ins+"')"); 
s.close(); 
con.close(); 
} 
catch(SQLException se) 
{ 
    System.out.println(se); 
    } 
    return(i); 
    } 
+0

당신이'java.text'에서'SimpleDateFormat'를 가져 했습니까? – rgettman

+0

'p_date'가 이미'Date' 인 경우 명시 적으로'java.sql.Date'를 생성 할 필요가 없습니다. 'java.sql.Date'는'Date'를 상속합니다. –

+0

일반적으로 [ISO-8601] (http://en.wikipedia.org/wiki/ISO_8601) 날짜 형식은 'YYYY-MM-DD' 삽입을위한 최상의 계획입니다. 'DD/MM'과'MM/DD'는 모호합니다. – tadman

답변

0

당신은 문보다는 PreparedStatement의를 사용해야합니다.

PreparedStatement stmt = con.prepareStatement("insert into TAB(a,b) values(?,?)"); 
stmt.setDate(1, aValue); 
stmt.setString(2, bValue); 

위의 코드에서 jdbc 드라이버는 DB에 날짜를 보내는 방법을 알 수 있습니다.

확인 예를 들어이 사이트 :

http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html

http://www.mkyong.com/jdbc/how-to-insert-date-value-in-preparedstatement/

관련 문제