Connexion a la base de données (Java / Mysql)

cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010 - 31 juil. 2009 à 18:24
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010 - 3 août 2009 à 14:47
Bonjour,

Je souhaite inserreer des donnes dans ma base mais je constate que sa échou .
Qpres recherche sur le net et les forum je constate aue sa ne change .
SVP aidez moi


voici mon code
 import java.sql.*;
public class test1 {
private static void affiche(String message) {
System.out.println(message);
}
private static void arret(String message) {
System.err.println(message);
System.exit(99);
}
public static void main(java.lang.String[] args) {
Connection con = null;
ResultSet résultats = null;
String requete = "";
// chargement du pilote
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
arret("Impossible de charger le pilote jdbc:odbc");
}
//connection a la base de données
affiche("connection a la base de données");
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
} catch (SQLException e) {
arret("Connection à la base de données impossible");
}
//insertion d'un enregistrement dans la table personne
affiche("creation enregistrement");
requete = "INSERT INTO person VALUES (02,'Thiaw','claude')";
try {
Statement stmt = con.createStatement();
int nbMaj = stmt.executeUpdate(requete);
affiche("nb mise a jour = "+nbMaj);
} catch (SQLException e) {
e.printStackTrace();
}
//creation et execution de la requete
affiche("creation et execution de la requête");
requete = "SELECT * FROM person";
try {
Statement stmt = con.createStatement();
résultats = stmt.executeQuery(requete);
} catch (SQLException e) {
arret("Anomalie lors de l'execution de la requête");
}
//parcours des données retournées
affiche("parcours des données retournées");
try {
ResultSetMetaData rsmd = résultats.getMetaData();
int nbCols = rsmd.getColumnCount();
boolean encore = résultats.next();
while (encore) {
for (int i = 1; i <= nbCols; i++)
System.out.print(résultats.getString(i) + " ");
System.out.println();
encore = résultats.next();
}
résultats.close();
} catch (SQLException e) {
arret(e.getMessage());
}
affiche("fin du programme");
System.exit(0);
}
}

12 réponses

cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
31 juil. 2009 à 18:25
merci d'avance
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
31 juil. 2009 à 18:55
le message d'erreur est : impossible de se connecter a la base donc je suppose que c'est ma connection qui pose probléme et a priori c excate
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 juil. 2009 à 19:14
Salut,

Est-ce que ton serveur mySQL est bien connecté et en écoute lors de l'exécution de ton programme ? As-tu tenté un ping dessus ?

Je suis quasi-sûr que tu as utilisé easyPHP pour installer la base de données (allez savoir pourquoi tout le monde installe un serveur PHP pour avoir une base de données MySQL, c'est tellement plus simple de se compliquer la vie !!!), vérifie les ports d'écoute du serveur MySQL s'ils sont corrects.
______________________________________
DarK Sidious
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
31 juil. 2009 à 20:28
Merci pour ta reponse g verifie la connectivite de ma base mé tjr rien

NB:je n'utilise pas easyphp
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 juil. 2009 à 20:35
Salut,

Enfin quelqu'un qui n'installer pas easyphp pour avoir accès à une base MySQL, c'est de plus en plus rare

Au lieu d'afficher un message bidon, fait un e.printStaskTrace() sans ton catch, ainsi tu en saura bien plus sur l'erreur.
______________________________________
DarK Sidious
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
1 août 2009 à 12:01
Salut Merci pour ton aide g réussi a me connecté mais en utilisant netbeans (au depart je compilé avec javac ...) cependant ,on soucis est k jarrive pas a inserrer les données.
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
1 août 2009 à 12:14
voila ma jsp formulaire.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%--
    This file is an entry point for JavaServer Faces application.
--%>
<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    
        <h:outputText value="FORMULAIRE" />

        <h:outputText value="Nom"/><h:inputText value="#{PersonCR.newPerson.nom}" id="nom"
required="true" requiredMessage="Prénom obligatoire"/> 

        <h:outputText value="Prenom"/><h:inputText value="#{PersonCR.newPerson.prenom}" id="prenom"
/> 

<h:commandButton value="Ajouter" action="#{PersonCR.createPerson}" />
    
</html>
</f:view>
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
1 août 2009 à 12:15
Voila PersonCR.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pack1;

import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;


/**
 * C'est le contrôleur JSF qui fait le lien entre l'IHM et la partie métier.
 *
 * @author [mailto:djo.mos.contact@gmail.com djo.mos]
 *
 */
public class PersonCR {

private DataModel persons;
private person newPerson = new person();
private person editPerson;
private personDAO pDao = new personDAO();

/**
 * L'opération create à invoquer suite au remplissage d'un formulaire
 *
 * @return outcome pour la navigation entre les pages. Dans ce cas, c'est
 *         "list" pour retourner à la page de listing.
 */
public String createPerson() {
pDao.insert(newPerson);
newPerson = new person();
persons.setWrappedData(pDao.selectAll());
return "list";
}

/**
 * L'opération de suppression à invoquer suite à la sélection d'unbe
 * personne.
 *
 * @return outcome pour la navigation entre les pages. Dans ce cas, c'est null pour
 *         rester dans la page de listing.
 */
public String deletePerson() {
person p = (person) persons.getRowData();
pDao.delete(p);
persons.setWrappedData(pDao.selectAll());
return null;
}

/**
 * Opération intermédiaire pour récupérer la personne à modifier.
 * @return outcome pour la navigation entre les pages. Dans ce cas, c'est "edit" pour
 *         aller à la page de modification.
 **/
public String editPerson() {
editPerson = (person) persons.getRowData();
return "edit";
}

/**
 * L'opération Update pour faire la mise à jour.
 * @return outcome pour la navigation entre les pages. Dans ce cas, c'est "list" pour
 *         retourner à la page de listing.
 **/
public String updatePerson() {
pDao.update(editPerson);
persons.setWrappedData(pDao.selectAll());
return "list";
}

public DataModel getPersons() {
if (persons == null) {
persons = new ListDataModel();
persons.setWrappedData(pDao.selectAll());
}
return persons;
}

public void setPersons(DataModel persons) {
this.persons = persons;
}

public person getNewPerson() {
return newPerson;
}

public void setNewPerson(person person) {
this.newPerson = person;
}

public person getEditPerson() {
return editPerson;
}

public void setEditPerson(person editPerson) {
this.editPerson = editPerson;
}
}
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
1 août 2009 à 12:17
Ma classe person.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pack1;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 *
 * @author cloclo
 */
@Entity
public class person {
private Long id;
private String nom;
private String prenom;

/**
 * C'est l'accesseur de l'identifiant.

 * On indique qu'un champ est un identifiant en l'annotant avec Id. 

 * De plus, si on ajoute GeneratedValue, alors c'est la base de données ou
 * l'implémentation JPA qui se charge d'affecter un identifiant unique.
 *
 * @return l'identifiant.
 */
@Id
@GeneratedValue
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNom() {
return nom;
}

public void setNom(String firstName) {
this.nom = nom;
}

public String getPrenom() {
return prenom;
}

public void setPrenom(String prenom) {
this.prenom = prenom;
}

}
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
1 août 2009 à 12:18
Ma classe personDAO
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pack1;

/**
 *
 * @author cloclo
 */

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Persistence;

import pack1.person;

/**
 * C'est le DAO qui permet d'effectuer des opérations portant sur une personne
 * dans la base de données.
 *
 * @author [mailto:djo.mos.contact@gmail.com djo.mos]
 *
 */
public class personDAO {
private static final String JPA_UNIT_NAME = "test";
private EntityManager entityManager;

/**
 * L'opération Read
 * @return toutes les personnes dans la base de données.
 */
public List selectAll() {
List persons = getEntityManager().createQuery(
"select p from person p").getResultList();
return persons;
}

/**
 * L'opération Create
 * @param u La personne à insérer dans la base de données.
 * @return La personne insérée
 */
public person insert(person u) {
getEntityManager().getTransaction().begin();
getEntityManager().persist(u);
getEntityManager().getTransaction().commit();
return u;
}

/**
 * L'opération Update
 * @param u La personne à mettre à jour dans la base de données.
 * @return La personne mise à jour
 */
public person update(person u) {
getEntityManager().getTransaction().begin();
u = getEntityManager().merge(u);
getEntityManager().getTransaction().commit();
return u;
}

/**
 * L'opération Delete
 * @param u La personne à supprimer de la base de donnés.
 */
public void delete(person u) {
getEntityManager().getTransaction().begin();
u = getEntityManager().merge(u);
getEntityManager().remove(u);
getEntityManager().getTransaction().commit();
}

protected EntityManager getEntityManager() {
if (entityManager == null) {
entityManager = Persistence.createEntityManagerFactory(
JPA_UNIT_NAME).createEntityManager();
}
return entityManager;
}
}
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
3 août 2009 à 09:43
Salut,

on peut avoir plus d'info que 'ça marche pas' ? erreur ? log ? stacktrace ?
T'as essayé en debug ? sur quelle ligne ça plante ? le commit qui foire ? l'age du capitaine ?
0
cloddy Messages postés 15 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 12 novembre 2010
3 août 2009 à 14:47
Salut,

voila losque je compile le programme tout se passe bien .
Puis aprés saisi des champs (nom,prenom) je constate que rien n'est enregistré dans la base que faire?
-la base est bien connecté
0
Rejoignez-nous