Pages

Subscribe:

Ads 468x60px

Qui êtes-vous ?

Ma photo
passionné par les technologies innovantes

Recent Posts

Download

lundi 1 février 2016

Consommer un Restful webservice simple en Java

Ouf! Depuis près d"une année je n'écris plus rien sur ce blog. Aujourd'hui je voudrais juste vous montrer comment consommer un web service simple en Java. Nous allons utiliser Netbeans comme IDE et la libraire Jersey.

Le service que nous allons consommer est logé sur l'URL suivante:

http://services.groupkt.com/country/get/iso3code/IND
Pour commencer on va créer un projet dans Netbeans. Dans ce tuto le projet est appelé "JavaWebservice", Puis j'ai créé une classe qui s'appelle "Country" avec une méthode main dans le package blog

En suite importer la librairie Jersey dans le projet. Avec Netbeans c'est très simple on n'a pas besoin de télécharger les fichiers jar en ligne, il suffit juste de faire:
-clic droit sur le dossier Libraries puis Add Library comme le montre l'mage ci-après:


Si c'est bien ajouté, On passe à l'essentiel. on va le faire en 3 étapes:
          -Créér un client
          -Pointer une cible vers le service
          -Obtenir la réponse

Les codes les classes :

Résultat après exécution:


Pour plus d'infos sur la librairie Jersey,
https://jersey.java.net/documentation/latest/client.html

Téléchargez le projet ici




mardi 17 mars 2015

Boîtes de dialogue en JavaFx

Helas! Bien que JavaFx ait du mal à se mettre en place, il incarne la jeunesse et reste le remplaçant de la bibliothèque Swing.

JavaFx a connu beaucoup de problèmes à sa sortie, franchement après avoir fait 2 mois en JavaFx je ne voulais plus y passer mon temps pour écrire les codes. Depuis quelques semaines, j'ai fait un "back Fx". Ça semble me séduire! C'est pourquoi je voulais  partager avec vous cette petite astuce pour faire des boîtes de dialogue. Les amoureux de Swing savent que les boites dialogue sont très importantes pour communiquer avec avec l'utilisateur. 

Pour réaliser les boîtes de dialogue, j'ai utilisé la librairie "controlsfx" qu'on peut télécharger Ici
Pour commencer, ajouter ce fichier jar dans votre projet. Il existe plusieurs types de boîtes de dialogue. Je vais juste énumérer certaines(les plus utilisées):

*****Boite d'Information
Screenshots:

Codes:
     

*****Boite d'Avertissement
Screenshots:

Codes:

*****Boite d'Erreur
Screenshots:

Codes:


*****Boite de confirmation
Screenshots:
Codes:


Pour les autres boîtes de dialogue vous pouvez utiliser la javadoc de la librairie controlsfx!


mercredi 11 mars 2015

Connexion C# - MySQL (CRUD)

Ce petit matin de bonheur, suis tombé sur mes anciennes apps, je suis très content de partager avec vous ce petit tuto qui montre la connexion C#-MySQL.

En premier lieu j'ai créé un petit projet que j'ai nommé ASYVOGNO dans visual studio 2012.
J’ai supprimé le formulaire par défaut(Form1) que  Visual Studio a généré. J’ai créé un autre formulaire qui s’appelle MainFrame. C’est le formulaire général de mon application, il contiendra tous les menus de mon app.

Comme j’ai supprimé le formulaire par défaut(Form1). Je dois signaler à VS que lorsque je vais
lancer mon application, que le formulaire MainFrame soit démarré en premier lieu. Pour ce faire, j'ai édité le fichier Program.cs puis j'ai indiqué le point d'entrée "formulaire MainFrame"


A ce niveau je lance mon projet…pas d’erreur !!!

Si je veux  que lorsque je lance mon projet que le formulaire MainFrame occupe déjà tout mon écran. Je vais jouer sur la propriété WindowState. Je lui donne la valeur "Maximized". Par défaut, c’est
Normal.
...
J’ai créé un autre formulaire qui s’appelle Departement


Connexion avec la base de données
-------------------------------------------
Premièrement il faut installer le driver MySQL Connector. C’est lui qui sera le pont entre, l’application C# et la base de données. (Lors de l’installation, il faut prendre le type : Typical)
Une fois l’installation est finie. Il faut maintenant référencer le driver installé dans le projet Visual
studio. Pour ce faire : clic droit sur le projet > ajouter une référence
En suite dans l’onglet Extensions, choisir MySQL.Data

Maintenant je vais mettre une classe connexion(ConnexionMySQL) que j’ai déjà développée avec les
méthodes : Add, Delete et Update. Pour ce faire, je créé une classe vide en C#. Clic droit > Ajouter >
Classe.En suite je dis à cette classe vide, d’utiliser les bibliothèques de MySQL connector. J’ajoute donc le code suivant :

J’ajoute à cette classe, les codes que j’ai déjà développés. A ce niveau, il suffit seulement de jouer
avec les méthodes qui s’y trouvent !
OK…
Je veux utiliser la méthode "add" de la classe connexion pour Ajouter un département dans la table
département.
La méthode "Add" reçoit en paramètre une chaîne de caractères qui est, bien attendu, la requête pour
insérer un élément dans une table quelconque. Pour le cas sous examen, je désire insérer un
département.

Exemple d’une requête pour insérer un département.
---------------------------------------------------------------
INSERT INTO departement VALUES (‘DPT1’,’MECANIQUE’)
     1. J’instancie d’abord la classe ConnexionMySQL au début de mon formulaire.
   2. Il suffit seulement de mettre le code suivant derrière le bouton ajouter du formulaire
département :

Le block try/catch sert à gérer les erreurs dans un programme c#. Une erreur peut être générée au cas où par exemple un utilisateur veut entrer un département avec un ID qui existe déjà dans la base de données, il y aura erreur puisque la clé primaire doit être unique dans une table.
Il suffit juste d’exécuter le projet et entrer par exemple les éléments suivants : Tout Marche !!








lundi 5 janvier 2015

Indenter les codes XML/JSON dans Sublime Text 2/3

Ouf! En ce premier jour de boulot 2015, je suis ravi de partager avec vous cette petite astuce. Il arrive de fois après édition de fichier XML en sublime Text qu'on se sente mal à aise ou dépayser. Alors qu'il y a plugin qui permet de bien formater les codes comme l'on aurait souhaité.

1-Téléchargez le plugin à l'adresse suivante: https://github.com/alek-sys/sublimetext_indentxml
2-Décompressez le fichier téléchargé
3-Lancez Sublime Text
4-Allez au menu "Preferences" > "Browse packages..."
5-Copiez le le répertoire décompressé(voir point 2) dans le répertoire ouvert par Sublime en cliquant sur  "Browse packages..."
6-Fermez sublime puis relancez
7-Pour voir les effets, il suffit d'aller sur le menu "Tools" > "Command palette" puis saisir dans la barre recherche "Indent XML" pour le fichier XML et "Indent JSON" pour le fichier JSON.

mercredi 4 décembre 2013

Enregistrer Préférence Utilisateur en Android

Il arrive de fois on a besoin de faire un ecran d'authentification du genre Skype. Ca veut dire, on n'est pas obligé à chaque fois de retaper le login et le mot de passe. Voici un peu à quoi ressemble notre ecran de connexion:




Voici le layourt de l'interface: 
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp" 
    android:background="@drawable/ima_home"
    >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="38dp"
        android:ems="10"
        android:hint="@string/userlog"
        android:imeOptions="actionNext"
        android:inputType="textNoSuggestions" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginLeft="23dp"
        android:layout_marginTop="25dp"
        android:ems="10"
        android:hint="@string/password"
        android:inputType="textPassword" />

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="20dp"
        android:text="@string/chbSave" />

    <Button
        android:id="@+id/btnlogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/checkBox1"
        android:layout_alignParentRight="true"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:text="@string/btnLogin" 
        android:layout_marginTop="40dp"/>


</RelativeLayout>


Les codes sources de l'Activité qui gere la préférence utilisateur:


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class Login extends Activity implements OnClickListener{
private String username, password;
private Button ok;
private EditText editTextUsername, editTextPassword;
private CheckBox saveLoginCheckBox;
private SharedPreferences loginPreferences;
private SharedPreferences.Editor loginPrefsEditor;
private Boolean saveLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);

 ok = (Button) findViewById(R.id.btnlogin);
 ok.setOnClickListener((OnClickListener) this);
 editTextUsername = (EditText) findViewById(R.id.editText1);
 editTextPassword = (EditText) findViewById(R.id.editText2);
 saveLoginCheckBox = (CheckBox) findViewById(R.id.checkBox1);
 loginPreferences = getSharedPreferences("loginPrefs", MODE_PRIVATE);
 loginPrefsEditor = loginPreferences.edit();

 saveLogin = loginPreferences.getBoolean("saveLogin", false);
 if (saveLogin == true) {
  editTextUsername .setText(loginPreferences.getString("username", ""));
  editTextPassword.setText(loginPreferences.getString("password", ""));
  saveLoginCheckBox.setChecked(true);
 }

}



@Override
public void onClick(View view) {
// TODO Auto-generated method stub
 if (view== ok) {
  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
  imm.hideSoftInputFromWindow(editTextUsername.getWindowToken(), 0);

  username = editTextUsername.getText().toString();
  password = editTextPassword.getText().toString();

  if (saveLoginCheckBox.isChecked()) {
   loginPrefsEditor.putBoolean("saveLogin", true);
   loginPrefsEditor.putString("username", username);
   loginPrefsEditor.putString("password", password);
   loginPrefsEditor.commit();
  } else {
   loginPrefsEditor.clear();
   loginPrefsEditor.commit();
  }

  doAction();
 }
}

public void doAction() {
startActivity(new Intent(Login.this, ActivityDrawer.class));
Login.this.finish();

}
}


jeudi 24 octobre 2013

Connexion Java-MySQL

Ce tuto parle de Java pour la base de données MySQL. Il couvre les bases de la programmation MySQL avec Java. On va utiliser MySQL connector, le pilote officiel JDBC pour MySQL. Le projet qui illustre cette manupilation est créé avec Netbeans.

JDBC=Java Data Base Connectivity

C'est un ensemble d’interfaces et de classes.  c'est une API qui définit un standard d’accès aux bases de données en langage Java. Elle fournit des méthodes pour interroger et mettre à jour les données dans une base de données. JDBC est orientée vers les bases de données relationnelles.  Pour utiliser JDBC avec une base de données particulière, on a besoin d'un pilote JDBC pour cette base de données.

MySQL

MySQL est un système de gestion de base de données open source. Il est actuellement est détenu par Oracle.  MySQL est tres populaire sur le web.

Pour bien suivre cet article, vous devez avoir MySQL, JDK et Netbeans installés !!

Voici la structure et le script SQL de notre table:


     Script SQL: 

CREATE  TABLE `db_tuto`.`person` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nom` VARCHAR(45) NULL ,
  `prenom` VARCHAR(45) NULL ,
  PRIMARY KEY (`id`) );

Par la suite la base de données qu'on va utiliser s'appellera "db_tuto"

!!! Mais vous avez dit avec API JDBC on doit avoir MySQL connector, où est-il???

Bonne question!!  On a decidé d'utiliser un EDI tres puissant( Netbeans)...il est tellement bon que dans ses versions superieures, il vient avec certains pilotes...déjà à partir de la version 6.8 si j'ai bonne memoire...dans ce tuto, on utilise la version 7.3.1

Je suis desolé je ne rappellerai pas comment creer un projet dans Netbeans...je vais juste montrer comment ajouter MySQL connector dans un projet.

A l'interieur du projet, cliquez droit sur le noeud librairies > Add Librairy
Dans la liste des options, sélectionnez MySQL JDBC Driver.

!! Ceux qui n'ont pas Netbeans ou ceux qui ont une version anterieure de Netbeans peuvent telecharger et ajouter MySQL connector dans leur projet sur le lien: http://www.mysql.com/products/connector/ 

Tout est prêt pour décoller...Serrez bien vos ceintures...let's go !!

On va utilisation API JDBC en 3 grandes etapes: -Chargement du pilote
                                                                           -Connexion base de donnees
                                                                           -Les requetes en JDBC et fermeture

1. Chargement du pilote:
2. Connexion:

3. Requete d'insertion:

Apres execution, voici la table person:
Voici les codes sources complets:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBCMain {

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
         
            /*Parametres de connexion a la Base de donnees*/
            String url="jdbc:mysql://localhost:3306/db_tuto";
            String user="root";
            String pwd="lenovo";
            Connection conn =DriverManager.getConnection(url, user,pwd);
         
            /*Requetes SQL en JDBC*/
            Statement stat=conn.createStatement();
            int rep=stat.executeUpdate("INSERT INTO person VALUES(1,'NDOMA','Riddy')");
            stat.close();
            conn.close();
        } catch (Exception e) {
        }
    }
}

Telechargez le projet complet ici

jeudi 17 octobre 2013

Utiliser un fihier .properties java

Par defintion un fichier  .properties est une extension de fichier essentiellement utilisée en Java et qui permet aux technologies compatibles de stocker les paramètres de configuration d'un logiciel. Ils sont également utilisés afin de stocker les chaînes de caractères standardisées ; ils sont connus comme des Property Resource Bundles (ensemble de ressources propriétaires).
Chaque paramètre est stocké comme une paire composée d'un pointeur de référence ('key') donnant le nom du paramètre, suivi de la valeur désirée de ce paramètre.(source : wikipedia)

La figure suivante montre la structure de notre projet, le fichier propreties qu'on utilise ici se trouve dans le package: com.sample.config
Le fichier Config.properties contient les informations suivantes:
On a notre classe Main qui va recuperer les informatons dans le fichier Config.properties. Dans cette classe on a les codes suivants:
Apres execution...voici ce que donne ce petit bout de code: