проблема в добавлении даты Java в MySQL? - PullRequest
0 голосов
/ 23 августа 2010

вот код

String DateOfBirth[]=strDOB.split("/");
Date dateOfBirth = new Date();
dateOfBirth.setYear(Integer.parseInt(DateOfBirth[2].trim()));
dateOfBirth.setMonth(Integer.parseInt(DateOfBirth[1].trim()));
dateOfBirth.setDate(Integer.parseInt(DateOfBirth[0].trim()));
 java.text.SimpleDateFormat DateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
strDOB = DateFormat.format(dateOfBirth);
 DBProcess.QueryExecuter("INSERT INTO patients(patient_id,first_name,last_name,middle_name,birth_dt) VALUES (\""+Double.parseDouble(strPatientID.trim())+"\",\""+strFirstname+"\",\""+strLastname+"\",\""+strMiddlename+"\",\""+strDOB +"\");");

Ответы [ 2 ]

1 голос
/ 23 августа 2010

О, мой.

Посмотрим, будет ли это лучше:

private static final String INSERT_SQL = "insert into patients(patient_id, first_name, last_name, middle_name, birth_dt) values(?, ?, ?, ?, ?)";

DateFormat inputFormatter = new SimpleDateFormat("dd/MM/yy");
Date dob = inputFormatter.parse(strDOB);
PreparedStatement ps = connection.prepareStatement(INSERT_SQL);
// bind your values here.
int numRowsAffected = ps.executeUpdate();

Я не могу понять, почему вы написали этот код для разбора строки даты, когда DateFormat был рожден длясделай это.И я, безусловно, надеюсь, что ваш столбец birth_dt имеет тип Date в вашей базе данных.Все остальное совершенно глупо.

0 голосов
/ 23 августа 2010

Используете ли вы в своем коде java.util.Date или java.sql.Date?

Лучший способ вставить дату Java в MySQL (или другую БД) - это использовать PreparedStatement и класс java.sql.Date:

java.sql.Date theDate = new Date(longTime);
PreparedStatement stmt = conn.prepareStatement("INSERT INTO table(id,date) VALUES (?,?)");
stmt.setInt(1, 123);
stmt.setDate(2, theDate);
stmt.execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...