[java/sql] pb INSERT INTO

Fermé
titchouzaune Messages postés 219 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 28 décembre 2010 - 7 juin 2008 à 17:12
nawel_s42 Messages postés 2 Date d'inscription mardi 15 février 2011 Statut Membre Dernière intervention 15 février 2011 - 15 févr. 2011 à 15:32
Bonjour,

je voudrais un peu d'aide. Je voudrais creer une ligne dans ma table de ma base de donnéee

stmt.executeUpdate("INSERT INTO liste_des_joueurs(nom,prenom,niveau,argent,emprunt,statut,IDconnex) VALUES (nom,prenom,niveau,argent,emprunt,statut,IDconnex)");

lorsque je met ca dans eclipse ca me creer une ligne .

Mais je ne sais pas comment remplir mes champs .
par ex: dans nom , je ve mettre toto
dans prenom , je ve mettre titi

quel commande dois je ecrire sous eclipse
A voir également:

6 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
7 juin 2008 à 19:22
Bonsoir,
J'imagine que tu ne fais pas de mapping objet-relationnel.
Pour remplir tes champs, il suffit de passer les bons paramètres aux champs values, tout simplement :
stmt.executeUpdate("INSERT INTO liste_des_joueurs VALUES (toto,titi,niveau,argent,emprunt,statut,IDconnex)"); 


Si tes valeurs sont stockées dans des objets, tu fais comme ça :
Personne p = new Personne(); // On suppose que le constructeur initialise les champs à toto, titi...
stmt.executeUpdate("INSERT INTO liste_des_joueurs VALUES (" + p.getNom() + ", " + p.getPrenom() + ", "+ ...)"); 


Cordialement
7
nawel_s42 Messages postés 2 Date d'inscription mardi 15 février 2011 Statut Membre Dernière intervention 15 février 2011
15 févr. 2011 à 14:55
bonjour ,
pouvez vous m'aider???bon objectif c du faire une gestion des notes en utilisant le JSP...
j'ai un problème , sous acces , bon je veux faire une connexion d'une BD avec le JPS, et le pb est que si je travaille avec le MySQL la connexion ne marche pas mé si je travaille avec Access la connexion avec cette base sous JPS (sous eclipse )et marche mais quand je veut faire une requête il me reçois cette erreur :

[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause FROM.9

ou est le pb exact ...et voilà mon code:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>affichege</title>
</head>
<body>
<center>
<br><h1> Application MVC</h1>
<h4> -Gestion des notes-</h4><br><br>
<h2>La liste des etudiant du Master 2</h2><br>
<%
String nomDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
Class.forName(nomDriver);
}
catch(ClassNotFoundException cnfe)
{
cnfe.printStackTrace();
}
String url = "jdbc:odbc:GestionDesNotes";
String login = "";
String password = "";
Connection connection = null ;
try
{
connection = DriverManager.getConnection(url,login,password);
//interaction avec la base
}
catch(SQLException sqle)
{System.out.print("erreur de la connexion \n");
}
finally {
}
Statement statement=null;
ResultSet resultSet=null;

try
{
statement= connection.createStatement();
boolean module = statement.execute("select nomModule from module order by nomModule ;");
boolean etudiant = statement.execute("select * from etudiant order by matricule;");
boolean moyenne = statement.execute(" select etudiant.matricule, etudiant.nom, etudiant.prenom, module.nomModule, sum (noteTD+noteExamen*2)/coefficientModule AS moyenne FROM etudiant JOIN note ON ( etudiant.matricule = note.matricule ) JOIN module ON ( note.codeModule = module.codeModule );");


if(etudiant && module && moyenne)
{

out.print("<table border=\"1\" align=\"center\" >");

resultSet= statement.getResultSet();
int matricule=0;
int codeModule=0;

out.print("<tr>");

//out.print("<td><center> "); out.print("MODULE");out.print(" </center></td>");
out.print("<td><center> "); out.print(" MAT ETUDIANT");out.print(" </center></td>");
out.print("<td><center> "); out.print("NOM ETUDIANT");out.print(" </center></td>");
out.print("<td><center> "); out.print("PRENOM ETUDIANT");out.print(" </center></td>");
out.print("<td><center> "); out.print("MOYENNE");out.print(" </center></td>");
//out.print("<td><center> "); out.print("ETAT");out.print(" </center></td>");

out.print("</tr>");
while(resultSet.next())
{
out.print("<tr>");
//matricule= resultSet.getInt(1);
for(int i=1;i<=3;i++)
{
out.print("<td><center><b> ");
out.print(resultSet.getString(i));

out.print("</b> </center></td>");
}

/*
out.print("<td><center> ");
out.print(matricule+"nom ");
out.print(" </center></td>");
out.print("<td><center> ");
out.print(matricule+"prenom ");
out.print(" </center></td>");
*/
out.print("</tr>");
}
out.print("</table> ");
////////////////////////////////////////////
}

}
catch(Exception e){System.out.println(e.getMessage()+"9");}
%>
</center>

</body>
</html>








s'il vois plais aide mois...et merci d'avance ^_^
0
titchouzaune Messages postés 219 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 28 décembre 2010 16
7 juin 2008 à 19:52
merci pour ta reponse

j'ai reussi a mettre les donnees dans ma base

maintenant mon pb c'est que je veux que l'utilisateur mette son nom , prenom etc..

et que ca rentre automatiquement dans la base de donnée

je fais du client serveur

c'est un peu complique pour moi qui na jamais fais de programmation
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
7 juin 2008 à 21:26
Rebonsoir,
Dans ce cas tu dois découper ton application en plusieurs parties (l'idéal c'est d'implémenter le pattern mvc, c'est à dire 3 parties : la vue, le modèle et le contrôleur).

La vue : C'est ta partie "client". En général, c'est une page html avec un formulaire, qui va permettre à l'utilisateur de rentrer des données. Tu peux aussi le faire en client lourd (swing ou autre).

Le modèle : C'est tes objets métier. Dans notre cas, c'est où tu stockes ton objet Personne, et les autres objets relatifs à ton application.

Le contrôleur : C'est la partie qui fait la jointure entre les différentes couches. En l'occurrence, si tu utilises une page html, elle récupère les données envoyées via le formulaire (utilisation de l'objet HttpRequest) et instancie les objets de la couche modèle avec ces paramètre. Ceci fait, elle fait appel aux méthodes permettant de stocker ces objets dans ta base.

En espérant t'avoir aidé.
0
nawel_s42 Messages postés 2 Date d'inscription mardi 15 février 2011 Statut Membre Dernière intervention 15 février 2011
15 févr. 2011 à 15:32
merci bcp , ta réponse m'aide bcp , et il est claire Mtn , donc je dois travailler aussi avec les servlet au niveau du contrôleur ...merci bcp..et désoléen si je te dérange....
0
titchouzaune Messages postés 219 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 28 décembre 2010 16
7 juin 2008 à 21:48
dsl ce n'est pas ca que je veux faire :) . je veux juste ke l'utilisateur me file son nom , prenom etc...
pour ke mon programme rentre ses coordonnées dans ma base de donnée . voila mon thread .

import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;

public class thread implements Runnable {

/**
* Arguments
*/
private Serveur serveur;
private Thread t;

private Socket joueur;
private BufferedReader entree;
private PrintWriter sortie;
private BufferedReader in;
private PrintWriter out;
private int id;



/**
* Constructeur
*
* @param joueur
* @param croupier
*/
public thread (Socket joueur, Serveur croupier) {
this.joueur = joueur;
this.serveur = croupier;


try {

entree = new BufferedReader(new InputStreamReader(joueur.getInputStream()));
sortie = new PrintWriter(joueur.getOutputStream());
in = new BufferedReader(new InputStreamReader(joueur.getInputStream()));
out=new PrintWriter(joueur.getOutputStream(), true);
id = croupier.addClient(sortie);
} catch (IOException e) {
e.printStackTrace();
}
t = new Thread(this);
t.start();


}

/**
* run
*/
public void run() {
Personne p;
String prenom;
String nom;
int argent;
String message = ""; // déclaration de la variable qui recevra les messages du client
// on indique dans la console la connection d'un nouveau client
System.out.println("Un nouveau client s'est connecte, no "+id);

if ( serveur.getNbJoueurs() <= 4 ) {
try {
do {
message=entree.readLine();
System.out.println("client "+id+" : "+message);
out.println("j'ai bien compris...tu as envoye " +message);


if ( message.equals("custnew")){
System.out.println("mais t nouveau");
try{
Class.forName("com.mysql.jdbc.Driver");
try{
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/poklo02?user=root&password=");
Statement stmt = null;
Statement hehe = null;
ResultSet rs = null;
ResultSet op = null;
try{
System.out.println("donne nom");
nom=entree.readLine();
System.out.println("ton nom est"+nom);
System.out.println("donne ton prenom");
prenom=entree.readLine();
System.out.println("ton prenom est"+prenom);
System.out.println("donne argent");
argent=entree.read();
System.out.println("ton argent est de "+argent);

/// LE PROBLEME EST A PARTIR D'ICI. JE VEUX QUE NOM ,PRENOM ET ARGENT S'ENREGISTRE DANS MA BASE DE DONNEE
try{
stmt.executeUpdate("insert into liste_des_joueurs values (nom,prenom,'debutant',argent,1,'autori',15)");
}
catch(SQLException ex)
{ System.err.println("SQLException: " + ex.getMessage()); }



op=hehe.executeQuery("SELECT prenom FROM liste_des_joueurs ");
if (rs!=null){
op=hehe.getResultSet();
while(op.next()){
System.out.println(op.getString(1));
}
if (rs!=null){
rs=stmt.getResultSet();
while(rs.next()){
System.out.println(rs.getString(1));
}
while(op.next()){
System.out.println(op.getString(1));

if(entree.equals(op.getString(1))){
System.out.println("tu es deja la !");
}
}
}
}
}
finally{
try{
if (rs!=null){
rs.close();
rs=null;
}
}
catch (SQLException sqlEx){}
}
}
catch (SQLException ex){
System.err.println("SQLException:"+ex.getMessage());
}
}
catch (Exception ex) {
System.err.println(ex.toString());
}


}
else
System.out.println("ce nest pas la bonne commande");
} while (!message.equals("exit"));

} catch (Exception e) {

} finally {
try {
// on indique à la console la deconnexion du client
System.out.println("Le client no "+id+" s'est deconnecte");
serveur.delClient(id); // on supprime le client de la liste
joueur.close(); // fermeture du socket si il ne l'a pas déjà été (à cause de l'exception levée plus haut)
}
catch (IOException e){ }
}
} else {
System.out.println("La table est pleine.");
serveur.delClient(id); // on supprime le client de la liste
try {
joueur.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("Le client no "+id+" s'est deconnecte");

}


}
}
0
titchouzaune Messages postés 219 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 28 décembre 2010 16
7 juin 2008 à 21:51
voila mon erreur : java.lang.NullPointerException
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
7 juin 2008 à 22:36
Ce n'est pas un client-serveur que tu fais, c'est pour ça :)
Tu peux me donner la stack trace stp?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titchouzaune Messages postés 219 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 28 décembre 2010 16
7 juin 2008 à 22:56
je sais pas ce que tu demande mais je te donne le reste de mon programmee XD

import java.io.*;
import java.net.*;
import java.util.Vector;

public class Serveur {

/**
* Arguments
*/

private static final int port = 8888;
private int nbJoueurs = 0;
private Vector<PrintWriter> listeJoueurs = new Vector<PrintWriter>();
private static Socket clientSocket;


/**
* main
* @param args
* @throws IOException
*/
public static void main (String[] args) throws IOException {

Serveur s = new Serveur();

try {
ServerSocket serveur = new ServerSocket (port);
printWelcome(port);

while (true) {
new thread(serveur.accept(),s);
}

} catch (Exception e) {
System.err.println(e.toString());
}

}

/**
*
* @param port
*/
static private void printWelcome (Integer port)
{
System.out.println("****************");
System.out.println("*** CROUPIER ***");
System.out.println("****************");
System.out.println(" -> Demarré sur le port " + port.toString());
}


/**
* Methode : envoie le message à tous les clients
*/
synchronized public void sendAll(String message) {

for (int i = 0; i < listeJoueurs.size(); i++) {
listeJoueurs.elementAt(i).print(message);
listeJoueurs.elementAt(i).flush(); // envoi dans le flux de sortie
}

}


/**
* Methode : détruit le client no i
*/
synchronized public void delClient(int i) {

nbJoueurs--; // un client en moins ! snif
listeJoueurs.removeElementAt(i); // ... on le supprime
}

/**
* Methode : ajoute un nouveau client dans la liste
*/
synchronized public int addClient(PrintWriter out) {

nbJoueurs++; // un client en plus ! ouaaaih
listeJoueurs.addElement(out); // on ajoute le nouveau flux de sortie au tableau

return listeJoueurs.size()-1; // on retourne le numéro du client ajouté (size-1)
}

/**
* Methode : retourne le nombre de clients connectés
*/
synchronized public int getNbJoueurs() {

return nbJoueurs; // retourne le nombre de clients connectés
}
}








import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;


public class client {

/**
* Arguments
*/
private static final int port = 8888;
public static Socket client;
private static PrintStream sortie;
private static BufferedReader entree;
private static BufferedReader stdIn;
private static BufferedReader in;
private static PrintWriter out;
private static String requete;

public static void main(String args[]) throws Exception {

System.out.println("*** JOUEUR ***");

try {
client = new Socket("localhost",port);
sortie = new PrintStream(client.getOutputStream());
entree = new BufferedReader(new InputStreamReader(client.getInputStream()));
stdIn = new BufferedReader(new InputStreamReader(System.in));
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out=new PrintWriter(client.getOutputStream(), true);


} catch (UnknownHostException e) {
System.err.println(e.toString());
} catch (IOException e) {
System.err.println(e.toString());
}

System.out.println(" -> Connexion au serveur sur le port " + port);

do {
System.out.println("Taper votre requete : ");
requete = stdIn.readLine(); // Lecture de la requete
sortie.println(requete); // Envoi de la requete



} while ( !requete.equals("exit"));

}


}
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
7 juin 2008 à 23:30
Re,
Je ne peux pas exécuter ton code (faut que j'installe mysql et tout et tout).
Cependant, je pense savoir d'où provient ton erreur (d'ailleurs es-tu sûr que tu arrives à insérer dans ta base de données, car c'est très étrange).
Le problème vient des statements qui ne sont pas initialisés (ils valent donc "null", et quand tu essaies d'appeler des méthodes d'objets null, tu obtiens des NullPointerException).

Il faut faire de la manière suivante :
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/poklo02?user=root&password=");
Statement stmt = conn.createStatement();
stmt.executeUpdate("insert into liste_des_joueurs values (nom,prenom,'debutant',argent,1,'autori',15)"); 
stmt.close();

Il faut bien que ton objet conn serve à quelque chose non :D ?

Dans ton code, fais attention car tu as stmt, hehe et tes resultSet qui sont null (pour les resultSet en pratique ce n'est pas grave vu qu'ils vont se remplir suite aux appels des méthodes executeQuery).
Juste après le code ci-dessus tu as une condition :
if(rs!=null)

qui ne sert à rien car le code qui est à l'intérieur ne s'exécutera jamais (rs à été initialisé à null et tu ne le modifies jamais).
Regarde donc aussi de ce côté là, mais ça devrait déjà aller mieux.

Cordialement
0
JE TRAVAIL SUR L'EVERENEMENT ORACLEJDEVELOPER11G ET NE CONNECE PAS COMMENT ECRIRE UNE REQUETE D'ISERTION AVEC LE LANGAGE JAVA2(J2EE) PUISQUE LES REQUETES DE JAVA NOT PAS LES MEME DE SQL.
ET MERCI
0