Bonjour,
Je dois faire un mini projet pour apprendre à créer et gérer une base de donnée et le problème c'est que ne semble pas être très doué pour la programmation. Voici mon souci : je dois créer une table sur dans une base de donnée derby en java. Et comme par hasard, ca ne marche pas! Voici le programme incriminé
*/
public class BdD {
public static Connection defaultConnection = BdD.connect();
public static Connection connect() {
try {
Connection con;
Class.forName("org.apache.derby.jdbc.ClientDriver");
String DataBaseURL = "jdbc:derby://localhost:1527/Messagerie";
String userName = "titi";
String login = "caca";
con = DriverManager.getConnection(DataBaseURL, userName, login);
return con;
} catch (Exception Ex) {
throw new Error(Ex);
}
}
public static void creerTablePersonne() {
try {
Connection con = BdD.defaultConnection;
Statement st = con.createStatement();
String CreationTablePersonne = "create table Personne ( \n " +
" id integer not null, \n" +
" nom varchar (50) not null \n" +
" prenom varchar (50) not null \n" +
" MotDePasse varchar (10) not null)" +
"";
st.executeUpdate(CreationTablePersonne);
} catch (Exception Ex) {
throw new Error(Ex);
}
}
public static void creerTableMessage() {
try {
Connection con = BdD.defaultConnection;
Statement st = con.createStatement();
String CreationTableMessage =
"create table Message ( \n " +
" Emmeteur integer not null, \n" +
" Destinataire integer not null \n" +
" Message VARCHAR(100) not null)\n" +
"";
st.executeUpdate(CreationTableMessage);
} catch (Exception Ex) {
throw new Error(Ex);
}
}
public static void main(String[] args) {
BdD.creerTableMessage();
BdD.creerTablePersonne();
}
}
Programme très simple comme vous pouvez le voir (programme de test en fait) et voici le message d'erreur
deps-jar:
Compiling 1 source file to C:\Documents and Settings\IDI\Bureau\Projet\prog\Messagerie\build\classes
compile:
run:
Exception in thread "main" java.lang.Error: java.sql.SQLException: Erreur de syntaxe : Encountered "Message" at line 4, column 2.
at fr.insa.a2008.ba.messagerie.BdD.creerTableMessage(BdD.java:62)
at fr.insa.a2008.ba.messagerie.BdD.main(BdD.java:67)
Caused by: java.sql.SQLException: Erreur de syntaxe : Encountered "Message" at line 4, column 2.
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.Statement.executeUpdate(Unknown Source)
at fr.insa.a2008.ba.messagerie.BdD.creerTableMessage(BdD.java:60)
... 1 more
Caused by: org.apache.derby.client.am.SqlException: Erreur de syntaxe : Encountered "Message" at line 4, column 2.
at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source)
at org.apache.derby.client.am.Statement.completeExecuteImmediate(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
at org.apache.derby.client.am.Statement.readExecuteImmediate(Unknown Source)
at org.apache.derby.client.am.Statement.flowExecute(Unknown Source)
at org.apache.derby.client.am.Statement.executeUpdateX(Unknown Source)
... 3 more
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Si je comprend bien ma requêtre pour ma seconde table est fausse sur la ligne message. Mais alors pourquoi?
De plus, j'ai une petite question : y a t'il un format plus approprié pour stocker un message volumineux que les varchar? Si non, quelle la taille maxi d'un varchar?
Merci d'avance pour votre aide!
Configuration: Windows XP
Internet Explorer 6.0
Net beans 6.0