[Firebase] Requêtes SQL converties en Firebase noSql.

Firebase

Introduction


Firebase est une base de données géniale de Google en ligne comparable à MongoDb mais avec pleins de fonctionnalités  supers du style Auth, sécurité etc …

Firebase est pas mal pour créer des maquettes d’applications rapidement par exemple ou pour développer dans l’urgence une petite application temporaire (6 mois d’utilisation.).

Par contre c’est du stock d’objets JSON, du coup on peut pas requêter en SQL dessus.

Comment requêter sur Firebase  ?


Regarder le blog de ces personne qui ont converti des rqts SQL communes en rqts Firebase:

https://firebase.googleblog.com/2013/10/queries-part-1-common-sql-queries.html
https://firebase.googleblog.com/2014/11/firebase-now-with-more-querying.html

Publicités

[Java] Faire du Crud avec Java sur Mysql. Utiliser le Crud dans une Jsp.

Introduction


Faire du créer/Lire/Mettre à jour/Supprimer sur une base Mysql avec Java.

Utiliser le Crud dans une JSP.

Source :


Pure Jsp James Goodwill Sams année 2000

Format de la table SQL :


tble

Prérequis


  • Serveur Web Tomcat 8.0
  • Eclipse
  • Un serveur Mysql avec une base de données nommée « feedback » dessus et un utilisateur root avec le mot de passe root. Le serveur doit être accessible sur le port 3306.
  • Dans Eclipse, créer un Nouveau Dynamic Web Project ( file/new/) dans Eclipse appelé projetWeb4
  • Toujours dans Eclipse, faire un glissé déposé du fichier JAR mysql connector dans le répertoire WEB-INF/lib du projetWeb4 ( Le mysql Connector est a récupérer sur le site Java ou mysql)

Sommaire :


  1. Lire une table Mysql
  2. Ecrire un enregistrement dans une table Mysql
  3. updater un enregistrement dans une table Mysql
  4. Supprimer un enregistrement dans Mysql
  5. Utiliser le Crud dans une JSP.

Lire la suite

[Java] Créer un couple JSP/BEAN puis créer un couple JSP/BEAN pour quérir Mysql

Java_logo

Introduction


Toujours dans le trip Java, avec Eclipse dernière version, Tomcat 8.0 comme serveur Web, Mysql comme base  de données et surtout : MYSqL WORKBENCH, un super logiciel qui permet de gérer ses bases MYSQL super facilement, on peut créer des n-uplets(enregistrements), sur le vif pour les démos c’est super:

Sans titre 2.jpg

Aujourd’hui,voici le sommaire:

  1. je crée une page web .JSP avec une classe Java(appellée BEAN) qui fournit les données à la page Web.
  2. Puis, je crée une page Web .JSP avec une classe JAVA(appellée BEAN) qui fournit les données à partir de la base de données MYSQL, dont le serveur est installé en dur sur mon ordinateur, accessible à partir du port 3306.

Mon but,  serait également de trouver le moyen de faire un BackEnd JAVA qui créérait de l’objet JSON pour AngularJs… Comme j’ai fais dans mon application trouve ton Film avec PHP…

1. Créer une JSP avec un BEAN associé, qui fournit les données, dans ECLIPSE:


Tout d’abord, dans Eclipse JAVAEE, faire FILE/NEW/ DYNAMIC WEB PROJECT et créer le projet ‘projetWeb’

Ensuite, dans l’arborescence créée, cliquer droit sur le répertoire WebContent, puis clic droit/créer une JSP. La nommer « JspEtBeanQuiMarche ».

Supprimer le code généré dans l’onglet de la jsp qui s’affiche et insérer celui ci à la place :

<html>
<HEAD>
	<TITLE>Essai d'instanciation d'un bean dans une JSP</TITLE>
</HEAD>

<body>
	<p>Test d'utilisation d'un Bean dans une JSP </p>
	<jsp:useBean id="personne" scope="request" class="projetWeb.Personne" ></jsp:useBean>
	<p>nom initial = <%=personne.getNom() %></p>
	<%personne.setNom("mon nom");%>
	<p>nom mis à jour = <%= personne.getNom() %></p>
</body>

</html>

Enregistrer la JSP.

Ensuite, en phase deux, on va créer la classe JAVA de type BEAN qui va apporter à la JSP toutes les données dont elle a besoin :

Faire un clic droit sur le répertoire « Java ressources » et créer une classe, la nommer Personne.java :

Ensuite, lorsque l’onglet de la classe java de type bean s’ouvre, supprimer le code généré puis copier ce code à l’intérieur:

package projetWeb;

public class Personne {
	  private String nom;
	  private String prenom;

	  public Personne() {
	    this.nom = "nom par defaut";
	    this.prenom = "prenom par defaut";
	  }

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

	  public String getNom() {
	    return (this.nom);
	  }

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

	  public String getPrenom () {
	    return (this.prenom);
	  }
	}

On peut remarquer que le package est le nom que l’on a donné à notre projet Web dans eclipse.

Enregistrer la classe, puis relancer le serveur en cliquant sur l’onglet servers puis sur stop (rouge) et sur play(vert)

Enfin, pour tester le tout, cliquer droit sur la jsp que l’on a créé, et faire « Run as »/ »Run on server »

Le texte suivant s’affiche alors dans le site web :


Test d’utilisation d’un Bean dans une JSP

nom initial = nom par defaut

nom mis à jour = mon nom

Ce qui prouve que cela fonctionne.

 

2.Créer une page Web .JSP avec une classe JAVA(appellée BEAN) qui fournit les données à partir de la base de données MYSQL.

 

Tout d’abord, il faut télécharger le fichier.jar mysql-connector-java-5.1.38-bin.jar qui est la librairie qui permet d’accéder à Mysql.

Ensuite, il faut glissé déposé le fichier mysql-connector-java-5.1.38-bin.jar dans le répertoire « lib » du répertoire WEB-INF de l’application projetWeb que l’on a créé à l étape un.

Ensuite, on crée une base de données appelée « feedback » sur le serveur MYSQL que l’on a installé sur notre ordinateur .

Puis on crée la table tbl_user_primary avec les champs suivants

  • id, fname,lname,email,password,gender

Oui je sais c’est en anglais pas le temps de traduire .

Ensuite, on peuple la table comme cela :

  • insert into tbl_user_primary values (‘1′,’Pierre’,’bertrand’,’p.b@gmail.com’,’gch’,’m’);

Bref, ce sera notre table de démo …

On redémarre le serveur tomcat, puis on crée une nouvelle JSP que l’on nomme « JspMysqlQuiMarche » sous WEBCONTENT/WEB-INF, en faisant un clic droit, comme d’hab.

Le code de cette jsp est le suivant  :

<%@ page import="java.util.*" %>
<jsp:useBean id="showDataBean" class="projetWeb.ShowDataBean" scope="request" ></jsp:useBean>
 
<table width="900" cellspacing="0" cellpadding="0">
    <tr>
   
        <td>
        Name
        </td>
        <td>
        Email
        </td>
        <td>
        PassWord
        </td>
        <td>
        Gender
        </td>
        
    </tr>
    <%
        List<Object> list=new ArrayList<Object>();
        list=showDataBean.getDb_Data();
        for(int i=0;i<list.size();i++)
        {
            showDataBean.setObj(list.get(i));
        %>
         
    <tr>
        <td>
        <%
            out.print(showDataBean.getFname() +" "+ showDataBean.getLname());
         
        %>
        </td>
        <td>
        <%
            out.print(showDataBean.getEmail());
        %>
        </td>
        <td>
        <%
            out.print(showDataBean.getPassword());
        %>
        </td>
        <td>
       <%
            out.print(showDataBean.getGender());
        %>
        </td>
         
    </tr>
    <% }%>
</table>

on peut remarquer qu’il y a une boucle for qui tourne pour créer un tableau HTML… Avec AngularJS 1.5 et Firebase, on fait cela en 2 lignes, là il en faut 200 ! Mais c’est pas mal quand même !!

Ensuite, on créé comme dans la partie un, une classe BEAN nommée ShowDataBean , on supprime le code autogénéré, pusi on colle ce code à la place:

package projetWeb;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class ShowDataBean
{

    String error;
    List<Object> allData=new ArrayList<Object>();

    public String fname,lname,email,password,gender;
    Object obj=new Object();

    public void setObj(Object obj) {
        this.obj = obj;
    }
    public String getError() {
        return error;
    }
    public List getDb_Data()
    {
        int i=0;
        try
        {
                String qry;
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/feedback","root","root");
                Statement s = con.createStatement();
                qry="Select fname,lname,email,password,gender from feedback.tbl_user_primary";
                ResultSet r=s.executeQuery(qry);
                while(r.next())
                {
                    DataFields d=new DataFields(r.getString(1), r.getString(2), r.getString(3),r.getString(4), r.getString(5));
                    allData.add(i,d);
                    i++;
                }

        }
        catch(Exception ex)
        {
                error="<b>Contact Administrator :</b>
" + ex;
                System.out.println("Your query is not working" + ex);
        }
       return allData;
    }
    public String getFname()
    {
        this.fname=((DataFields)obj).fname;
        return this.fname;
    }
    public String getEmail() {
        this.email=((DataFields)obj).email;
        return this.email;
    }

    public String getGender() {
        this.gender=((DataFields)obj).gender;
        return this.gender;
    }
    public String getLname() {
        this.lname=((DataFields)obj).lname;
        return this.lname;
    }
    public String getPassword() {
        this.password=((DataFields)obj).password;
        return this.password;
    }

    public class DataFields
    {
        public String fname,lname,email,password,gender;

        public DataFields(String  fname,String  lname,String  email,String  password,String  gender)
        {
            this.fname=fname;
            this.lname=lname;
            this.email=email;
            this.password=password;
            this.gender=gender;
        }
    }

}

Hé oui j’ai pas encore eu le temps de traduire, mais l’important est que si l’on clique droit sur exécuter sur le serveur sur la JSP que l’on a créé, la connexion fonctionne bien et nos utilisateur s’affichent bien dans le serveur WEB, il s’agit de l’un des rares exemples fonctionnels trouvés sur le web, je le traduirais bientôt ! :

 

java1.jpg