Problème de requête pour une base de donnée
idi
-
mariouma -
mariouma -
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!
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!
A voir également:
- Problème de requête pour une base de donnée
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- La base de données de sécurité du serveur n'a pas de compte d'ordinateur pour la relation - Forum Windows 10
- Formules excel de base - Guide
2 réponses
il manque les virgules entre les champs des tables des lignes de commande SQL
" nom varchar (50) not null , \n" +
" prenom varchar (50) not null , \n" +
" Destinataire integer not null , \n" +
" nom varchar (50) not null , \n" +
" prenom varchar (50) not null , \n" +
" Destinataire integer not null , \n" +
essai ce code pour moi ça marche
//préciser le driver
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver OK");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
System.out.println("Driver Not Ok");
e1.printStackTrace();
}
//connection à la base de données
String url="jdbc:derby://localhost:1527/sample";
try {
java.sql.Connection con=DriverManager.getConnection(url,"administrateur","1111");
System.out.println("connection établie");
//créer instance JDBC
java.sql.Statement stmt= con.createStatement();
//stmt.executeUpdate("CREATE TABLE operation ( Num INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),num_operation varchar (20),nom_op varchar(20),seri varchar(20),temp FLOAT,nbopera INTEGER, nboutil INTEGER)");
stmt.executeUpdate("CREATE TABLE nom_de_la-tablel (champs1 TYPE, champs2 TYPE....)");
con.close();
} catch (SQLException e1)
{
// TODO Auto-generated catch block
System.out.println("connection failed");
e1.printStackTrace();
}
//préciser le driver
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver OK");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
System.out.println("Driver Not Ok");
e1.printStackTrace();
}
//connection à la base de données
String url="jdbc:derby://localhost:1527/sample";
try {
java.sql.Connection con=DriverManager.getConnection(url,"administrateur","1111");
System.out.println("connection établie");
//créer instance JDBC
java.sql.Statement stmt= con.createStatement();
//stmt.executeUpdate("CREATE TABLE operation ( Num INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),num_operation varchar (20),nom_op varchar(20),seri varchar(20),temp FLOAT,nbopera INTEGER, nboutil INTEGER)");
stmt.executeUpdate("CREATE TABLE nom_de_la-tablel (champs1 TYPE, champs2 TYPE....)");
con.close();
} catch (SQLException e1)
{
// TODO Auto-generated catch block
System.out.println("connection failed");
e1.printStackTrace();
}