Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Persistance
Persistance Forum d'entraide pour la persistance en Java : base de donnée, xml, mapping orienté objet, ... Posez vos questions sur iBatis, JDO, XmlBeans, Castor, JAXB, XStream, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/12/2012, 13h51   #1
deli2025
Invité régulier
 
Inscription : août 2009
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 42
Points : 6
Points : 6
Par défaut Java connexion serveur MySQL distant

Bonjour,

dans le cadre d'un projet scolaire, je développe une application local en java (JavaFX2) qui doit effectuer des requêtes sur un serveur MySQL distant (Mutualisé OVH).

Le serveur n'étant pas accessible depuis l'extérieure, je n'arrive pas à trouver la méthode idéal pour communiquer avec lui...

J'ai d'abord pensé passer par des scripts php mais je n'ai trouvé aucuns exemples concrets et je ne sais pas comment mettre cela en place...

Pourriez vous me conseiller le meilleur moyen d'arrivé à mes fins. N'hésitez pas à détaillé votre idée

Merci d'avance
deli2025 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 15h01   #2
sinok
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 633
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 633
Points : 12 433
Points : 12 433
Des service REST faisant transiter du JSON feront amplement l'affaire.
Partie serveur: http://coenraets.org/blog/2011/12/re...lim-framework/

Pour la partie client en java: guidogarcia.net/blog/2012/03/02/how-to-develop-java-rest-client/
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 15h45   #3
deli2025
Invité régulier
 
Inscription : août 2009
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 42
Points : 6
Points : 6
Merci pour ta réponse rapide !

J'avais entendu parler de rest... Je vais regarder à ça.
deli2025 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 22h47   #4
deli2025
Invité régulier
 
Inscription : août 2009
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 42
Points : 6
Points : 6
... tu saurais m"expliquer un peu le fonctionnement pour java car je ne comprends rien du tout...
deli2025 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2012, 15h43   #5
sinok
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 633
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 633
Points : 12 433
Points : 12 433
C'est à dire, pourtant le code java est somme tout excessivement simple en utilisant cette api.

TU crées des objets java correspondant à ton JSON, et ceux ci sont alimentés automatiquement au moment de la requête par l'API.
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 16h55   #6
deli2025
Invité régulier
 
Inscription : août 2009
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 42
Points : 6
Points : 6
Citation:
Envoyé par sinok Voir le message
C'est à dire, pourtant le code java est somme tout excessivement simple en utilisant cette api.

TU crées des objets java correspondant à ton JSON, et ceux ci sont alimentés automatiquement au moment de la requête par l'API.
Oui mais pour installer l'api il faut un serveur qui accepte java ??!! Et mon serveur OVH mutualisé ne l'accepte pas...
deli2025 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 17h38   #7
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 279
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 279
Points : 32 755
Points : 32 755
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
le coté java c'est seulement coté client, on t'a donné un lien vers la partie serveur en PHP

Alternativement, si tu ne veux pas faire du REST, tu peux faire du xmlrpc, il y a aussi des libs pour ça.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 17h57   #8
deli2025
Invité régulier
 
Inscription : août 2009
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 42
Points : 6
Points : 6
Bon voilà ou j'en suis...

Sûr mon serveur j'ai mis un fichier php :

Code :
1
2
3
4
5
6
7
8
9
10
 
<?php
	mysql_connect("xxx","xxx","xxx");
	mysql_select_db("xxx");
	$sql=mysql_query("SELECT * FROM t_film WHERE film_titre like '".$_REQUEST['film_titre']."%'");
	while($row=mysql_fetch_assoc($sql))
	$output[]=$row;
	print(json_encode($output));
	mysql_close();
?>
Et j'y accède via java :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
public class Test 
{
    public static void main(String[] args) throws ClientProtocolException, IOException 
    {
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("http://iodos.eu/films.php");
 
 
	//StringEntity input = new StringEntity("product");
        //post.setEntity(input);
 
        List nameValuePairs = new ArrayList(1);
        nameValuePairs.add(new BasicNameValuePair("film_titre", "Matrix")); //you can as many name value pair as you want in the list.
        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
 
        HttpResponse response = client.execute(post);
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        String line = "";
        while ((line = rd.readLine()) != null) 
        {
            System.out.println(line);
        }
    }
}
Maintenant je suppose qu'il ne me reste qu' a traiter le Json avec java...

J'ai suivi ce tuto :

http://harryjoy.com/2012/09/08/simpl...lient-in-java/
deli2025 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 19h02   #9
olivier.pitton
Membre éprouvé
 
Avatar de olivier.pitton
 
Homme olivier pitton
Étudiant
Inscription : juin 2012
Messages : 210
Détails du profil
Informations personnelles :
Nom : Homme olivier pitton
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2012
Messages : 210
Points : 439
Points : 439
Plop,

Si tu veux traiter du JSON en Java je te conseille d'utiliser jackson.

Et sinon tu as compris le principe des services REST.
olivier.pitton est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2012, 21h11   #10
deli2025
Invité régulier
 
Inscription : août 2009
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 42
Points : 6
Points : 6
Merci !

Faut encore que je trouve de la doc sur le protocol HTTP car j'avais lu je ne sais plus ou qu'il fallait utiliser POST, mais aussi PUT, DELETE...
deli2025 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 10h45   #11
olivier.pitton
Membre éprouvé
 
Avatar de olivier.pitton
 
Homme olivier pitton
Étudiant
Inscription : juin 2012
Messages : 210
Détails du profil
Informations personnelles :
Nom : Homme olivier pitton
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2012
Messages : 210
Points : 439
Points : 439
Plop,

Le protocole HTTP définit des commandes, qui sont des types de requêtes. Ces commandes sont GET, PUT, POST, HEAD, DELETE, ...

Sache qu'il n'y a pas de différence fondamentale entre chaque type de commande (seul quelques changements mineurs, comme le passage de paramètre entre POST/GET ...).
olivier.pitton est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h48.


 
 
 
 
Partenaires

Hébergement Web