Comment insérer la Date dans la table MySQL Base de données en Java?
Comment puis-je insérer la date, sans le temps, à la table de base de données MySQL?
J'ai essayé ces codes, mais j'obtiens l'exception suivante:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Mar 05 00:00:00 GMT-08:00 2014,1,1)' at line 1
REMARQUE: Dans la table MySQL, le type de données de cette colonne, j'ai choisi le type de données de date
String Date = "\\d\\d\\d\\d\\D[0-1][0-9]\\D[0-3][0-9]";
while (DateMatcher.find()) {
String date = DateMatcher.group().trim();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = formatter.parse(date);
db.insert_date(myDate,2,1);
}
J'ai le problème uniquement avec la date dans la partie
Requête pour insérer la Date :
//insert DATE
public void insert_date(Date date_str, int sentence_id ,int document_id ){
//Statements allow to issue SQL queries to the database
try {
statement = connect.createStatement();
System.out.println( "insert into Date(date_Str,Sen_id,doc_id) " +
" values(" + date_str + "," + sentence_id + "," + document_id + ")"
);
statement.executeUpdate(
"insert into test.Date(date,Sen_id,doc_id)" +
" values(" + date_str + "," + sentence_id + "," + document_id + ")"
);
}
catch(Exception e ){System.out.println(e);};
//Result set get the result of the SQL query
}
- Pourquoi ne pas utiliser le MySQL type de données de date (dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html) et de faire de configurer la colonne par défaut?
- Il est visible là où vous êtes allé mal, je me demande pourquoi les "programmeurs" ne lisez pas les messages d'erreur avant de poser des questions. Attention à la façon dont vous avez construit requête MySQL. En particulier les guillemets. En particulier la citation que vous n'avez pas de match.
- Vérifiez votre syntaxe de Requête.. quelque chose de mal là.. poster votre code de requête
- cher Micha Wiedenmann colonne est de type date
- chers N. B je l'ai lu & essayé, mais je n'obtient pas de résultat correct
- chers Lakshmi j'ai édité mon code s'il vous plaît dites-moi votre remarque
- Éviter à l'aide de
Statement
. Plutôt utiliséPreparedStatement
lors de l'entreposage deObjects
qui ne sont pas primitifs. - Essayez aussi en joignant votre Chaîne de date 'date_str' entre guillemets simples.
- chers Raza maintenant, je peux insérer à MSQL table "Jeu Fév 02 00:00:00 GMT-08:00 2012" mais comment je peux convertir ce type de 05-05-2012 quelque chose comme ça
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, pour conserver un
java.util.Date
dans une base de données en Java, vous devrez le convertir enjava.sql.Date
. Ce qui est heureux JDBC SQLDate
est que c'est une sous-classe de JavaDate
.Par conséquent, pour créer un
java.sql.Date
dejava.util.Date
, vous aurez pour ce faire:Assurez-vous que
db.insert_date
n'accepte que lesjava.sql.Date
.Où vous devrez appeler votre
PreparedStatement.setDate()
fonction.Reportez-vous à la question java.util.Date vs java.sql.Date.
java.sql.Date
à l'aide dePreparedStatement.getDate()
et enfermé àjava.util.Date
.JAMAIS utilisation
java.sql.Statement
pour insérer des données. Utilisation TOUJOURSjava.sql.PrepartedStatement
. Cela parce que c'est une meilleure façon d'éviter l'Injection SQL (voir cette pour l'expliquer). Donc, dans votre cas, vous pouvez insérer la date de cette manière: