[Java] Etude du pattern DAO (Français).

Introduction


Dao veux dire Data access object.

Il s’agit d’un pattern qui sépare la logique d’accès et d’exploitation de la base de données, d’un POJO JAVA (L’habituelle classe Java contenant les getter et les setters).

L’atout est que l’on comprends mieux le code, et que l’on peut même créer plusieurs DAO en fonction de la BDD ou des fichers de données à exploiter (Comme du XML, par exemple.)

Idées provisoires, à vérifier


je suis particulièrement intéressé par JSF 2.0 et Primefaces(Qui semble bien plus simple dans sa syntaxe), cependant, les DAO, sauf erreurs, sont plutôt accès sur les JSP, il est bon d’apprendre les technologies plus anciennes, étant donné qu’il faut pouvoir intervenir sur les technologies les plus utilisées/anciennes, même si elles sont peu aisées à appréhender.

Je vais faire des exercices sur

  • un pattern DAO en adéquation avec une JSP et Mysql.
  • un pattern DAO en adéquation avec JPA et Hibernate et Mysql.

Un exemple pattern DAO en adéquation avec une JSP et Mysql


 

Sommaire :

Généralités 

  1. Les packages
  2. Les librairies
  3. Les pages web jsp
  4. Le fichier Web.Xml

Code 

 

  1. Les packages

Un package permet de classer les classes Java par type, dans une application Javaee.

Généralement, on précède son nom du préfixe com lorsqu’on le crée dans Eclipse en faisant un clic droit ‘Create package ‘ sous Java Ressource/src dans l’arborescence Eclipse.

Notre exemple contient 4 Packages :

  • Le Package com.app.controleur : On y place la classe Java qui va intéragir avec les pages Web JSP, lors de l’action d’un utilisateur
  • Le Package com.app.dao  :On y place les 2 classes Java qui vont intéragir avec la Base de données . 1 classe répertorie les commandes CRUD  disponibles (Lire/Enregistrer/Mettre à jour/Supprimer), l’autre classe actionne des requêtes SQL.
  • Le Package com.app.modele : On y place la classe Java (aussi appelée Pojo) qui contient les variables définissant notre modèle de donnée (exemple : Nom, Prénom), et les méthodes getter et setters
  • Le Package com.dbutil : On y place la classe Java qui permet la connexion à la base de données et ses paramêtres.

Voici le look d’une arborescence une fois nos packages créés (En Anglais), on peut considérer que c’est le moteur de l’application Web à venir. :

eclipse1

 

2. Les librairies :

On les télécharge et on les fait glisser déposer à partir du bureau windows dans le répertoire WebContent/WEB-INF/lib:

eclipse2

 

Ici, j’ai la lib JSTL, la lib MysqlConnector, et la lib servlet-api. elles sont toutes trois nécessaire au fonctionnement de notre système.

3. Les pages web JSP :

On les crée en faisant un clic droit sur WebContent puis ‘nouvelle JSP’, C’est l’Ihm, qui permet l’intéraction avec les utilisateurs, autrement dit, tout simplement, ce que l’on voit dans le navigateur.

4. le fichier Web.xml

Il permet de faire le mapping entre les URL et les Servlets

On le créée lorsque l’on crée un new dynamic web project, en cochant generate web descripment :

eclipse4

Si le projet est déjà créé, on clique sur le projet dans l’arbo, puis « Javaee tools/generate Deployement descriptor stub »

 
A SUIVRE AVEC UN CODE EN FRANCAIS BIENTOT
 

 

Publicités

[Java] Un Crud super basique JSP-JSTL avec Mysql

Java_logoJSP_LOGO_RGBlogo-mysql-170x170_400x400

Introduction


Faire un CRUD avec JSP, et utiliser JSTL pour simplifier les accès SQL dans les pages.

Aucune Classe Java ici, tout est fait directement dans les JSP.

Photo :


tab1.jpg

Prérequis :


  1. Créer une table SQL comme indiqué ici(Je sais c’est en anglais mais la flemme de traduire, ma base de données s’appelle test) :

CREATE TABLE `product` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `pname` varchar(45) NOT NULL,
  `quantity` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
);

INSERT INTO `product` (`id`,`pname`,`quantity`) VALUES
 (1,'Mouse',50),
 (2,'Keyboard',5),
 (3,'Monitor',34);
  1. Créer un dynamic web project dans Eclipse appelé jstlFolies
  2. Glisser-déposer toutes les librairies en .jar dans le répertoire WebContent/WEB-INF/lib:

Lire la suite

[Java] Utiliser Jquery pour peupler un menu en AJAX, avec un Back End Servlet Java/Mysql.

IntroductionJava_logo


Une méthode basique pour acquérir des données Mysql dans un servlet Java, sous condition de choix dans la vue avec Jquery.

Dans un second temps, la servlet retourne les données provenant de la base de données MYSQL au front-end, après les avoir converties au format JSON, à l’aide de la librairie GSON pour java.

Code inspiré de
http://www.simplecodestuffs.com/ajax-implementation-in-jsp-and-servlet-using-jquery/
Mais j’ai ajouté une connexion Mysql…

Photo de l’exo :
svlt1

 

Prérequis


  • Eclipse
  • Tomcat
  • Mysql
  • Créer un ‘new Dynamic Project’ appelé jsf17
  • Glisser déposer la librairies Jquery.js dans le répertoire ‘WebContent/Js’ si il n’existe pas, il faut le créer.
  • Glisser déposer les librairies gson-2-.2.2.jar et mysql-connector.jar dans le répertoire ‘webContent/WEB-INF/lib’
  • Créer une base de données nommée test sur Mysql, puis une table nommée volley avec les colonnes idvolley(int),nom(varchar),prenom (varchar)
  • Peupler la base de données avec des données exemples avec le logiciel MysqlWorkbench(C’est pratique)

Comment faire ?


Ne pas tester l’application dans Eclipse, mais toujours dans un navigateur séparé comme opéra par exemple(Le navigateur de Eclipe ne se remets pas à jour correctement).

Accéder à l’app sur cet url http://localhost:8080/jsf17/index.jsp

Créer une JSP appelée index.jsp qui sera la vue principale dans le répertoire WebContent :


<head>

	<script src='js/jquery.min.js'></script>
	<script>
// TESTE QUE LA LIB JQUERY SOIT BIEN CHARGEEE
	window.onload = function() {
	    if (window.jQuery) {  
	        // jQuery is loaded  
	        alert("Yeah!");
	    } else {
	        // jQuery is not loaded
	        alert("Doesn't Work");
	    }
	}
	
	
	
// TOUT LE CODE JQUERY
$(document).ready(function() {
	$('#sports').change(function(event) {
		var sports = $("select#sports").val();
		$.get('JsonServlet', {
		sportsName : sports
		}, function(response) {
			var select = $('#player');
			select.find('option').remove();
			$.each(response, function(index, value) {
				$('
<option>').val(value).text(value).appendTo(select);
			});
		});
	});
		
	$('#clic').click(function(event) {
		alert($("select#player").val());
	});
});
	
	</script>
</head>

<body>
<h3>AJAX avec Servlet utilisant JQuery et JSON</h3>
Selectionne ton sport favori:

	<select id="sports">
<option>Select Sports</option>
<option value="Football">Football</option>
<option value="Volley">Volley</option>
</select>

	Selectionne ton joueur favori:
	<select id="player">
<option>Selectionner le joueur</option>
</select>

	<button id="clic">Votre choix </button>
</body>

Tout le code contenu entre les balises est du jquery/JS. A l’avenir, j’utiliserais également AngularJs avec un Back end Java de cette manière.

 

 

Etape 2 : Créer une servlet appelée JsonServlet.java puis coller ce code à l’intérieur :

package jsf17;

import java.io.IOException;
import java.sql.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;

public class JsonServlet extends HttpServlet {

        private static final long serialVersionUID = 1L;

        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {

                String sportsName = request.getParameter("sportsName");
                List<String> list = new ArrayList<String>();
                String json = null;

                if (sportsName.equals("Football")) {
                        list.add("Lionel Messi");
                        list.add("Cristiano Ronaldo");
                        list.add("David Beckham");
                        list.add("Diego Maradona");
                } else if (sportsName.equals("Volley")) {
                       /* list.add("Sourav Ganguly");
                        list.add("Sachin Tendulkar");
                        list.add("Lance Klusener");
                        list.add("Michael Bevan");*/

                        int i=0;
                        try
                        {
                                String qry;
                                Class.forName("com.mysql.jdbc.Driver");
                                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
                                Statement s = con.createStatement();
                                qry="Select nom from volley";
                                ResultSet r=s.executeQuery(qry);
                                while(r.next())
                                {

                                    list.add(i,r.getString(1));

                                    i++;
                                }

                        }  catch(Exception ex)
                        {

                            System.out.println("Your query is not working");
                        }

                } else if (sportsName.equals("Select Sports")) {
                        list.add("Select Player");
                }

                json = new Gson().toJson(list);
                response.setContentType("application/json");
                response.getWriter().write(json);
        }
}

Explication du code :

Lorsque l’on choisit un sport dans le premier menu déroulant dans index.jsp, Jquery lance un appel Ajax à la servlet JsonServlet.java;

là, si le sport choisit est « Football », la servlet retourne un objet JAVA converti en JSON avec la lib GSON. Ce objet contient tous les noms des footballers
Par contre, si l’on choisit le sport « Volley », Jquery lance un appel Ajax à la servlet, puis la servlet fait une requête sur Mysql, récupère les données, puis retourne le résultat, également converti en JSON à la vue index.jsp ! La requête sql est très simple… Pour l’instant … (Select nom from volley)..

svlt2.jpg

Conclusion


Depuis le temps que je cherchais un moyen de faire de l’ajax avec Java, je suis heureux de savoir faire cela pour les petits projets, par contre pour les gros projets, il faut utiliser Hibernate qui fait du mapping o/r automatique.

 

A comparer avec un Back-End en Php pour angularJs que j’aime vraiment bien ici :

https://nicolashcodes.wordpress.com/2016/04/04/exercice-53-application-de-commande-de-films-avec-angularjsphpsql-et-le-template-sb-admin-2/

[Java] Créer une Jsp avec un bean qui récupère des Inputs HTML – Créer une Jsp-Jstl qui se connecte à Mysql

Introduction


A la recherche d’exemples JAVAEE de JSP exploitables et les plus simples possible, je suis tombé sur ce très bon site en Anglais :

http://www.tutorialspoint.com/jsp/index.htm

Il nous fait en particulier découvrir la librairie de Tag JSTL. Pour intégrer des librairies à Eclipse c’est méga simple, il faut copier coller à partir du bureau Windows les fichiers .jar des librairies dans le répertoire WebContent/WEB-INF/lib d’une projet WEB Eclipse .

Mon but est d’apprendre les technologies des années 2000 afin de pouvoir éventuellement comprendre un code datant de ces années là, voir même de créer quelque chose avec cette technologie, vu qu’elle est pas mal (UML et OBJET). Certaines personnes disent qu’il faut privilégier le système JSP sans frameworks, qui est plus simple pour certains projets.

  1. Une page HTML transmets par le biais d’un formulaire des variables à un BEAN (Classe JAVA), ensuite, une JSP affiche les données provenant de ce même BEAN :

HTML -> BEAN -> JSP

Dans cet exercice, pas de connexion SQL, C’est juste une réception de données directe provenant d’un formulaire. Le prérequis est juste que le serveur Web Tomcat tourne en arrière plan et soit intégré à Eclipse.

  • On lance Eclipse
  • On crée un nouveau Dynamic Web Project qu’on appelle web2 (FILE/New/…)

On fait un clic droit sur webContent-> New HTML puis on crée le fichier info.html :


<html>

<head>
<title>Besoin de plus d'informations</title>
</head>

<body>
	<h1>Plus d'informations</h1>
	S'il vous plait, utilisez ce formulaire pour indiquer quel cours vous préférez.

	<div class="un">

		<form method="get" action="reponse.jsp">
		  <br><input type="radio" name="courses" value="Java Programming"> Prog Java
		  <br><input type="radio" name="courses" value="Java Web Development"> Développement Java Web
		  <br><input type="radio" name="courses" value="J2EE Development"> J2EE Development
		  <br><input type="radio" name="courses" value="XML Introduction"> Introduction à XML
		  <br><input type="radio" name="courses" value="XML Schema"> XML Schema
		  <br><input type="radio" name="courses" value="Web Services"> Web Services

		  <p>Prénom: 	<input type="text" 		name="firstName">
		  <br>Nom: 		<input type="text" 		name="lastName">
		  <br>Email: 	<input type="text" 		name="email">
		  <br>Age : 	<input type="number" 	name="age">

		  <p><input type="submit" name="Submit">
		</form>

	</div>
</body>
</html>

<style>
.un{
	background-color:lightgrey;
}
</style>

Si on clique droit sur ce nouveau fichier HTML/Run as server, on voit cela dans le navigateur :

kuykuykuykuy

Ensuite, dans Eclipse, on clique droit sur le répertoire « Java Resource » de notre projet WEB et on créé une classe qui s’appelle Bean 

Malheureusement, j’ai pas eu le temps de la traduire pour que cela fasse mieux, tant pis …

Ce Bean va stocker les variables provenant de notre formulaire . On voit que c’est pour l’instant bien propre et structuré …

package web2;

public class Bean
{
  public String getFirstName() {
    return firstName;
  }
  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }
  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public String getCourses() {
    return courses;
  }
  public void setCourses(String courses) {
    this.courses = courses;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public Integer getAge() {
    return age;
   }

  public void setAge(Integer age) {
	 this.age = age;
   } 

  private String firstName;
  private String lastName;
  private String email;
  private String courses;
  private Integer age;
}

Notre bean n’est pas exécuté par la page HTML, c’est la JSP suivante qui l’appelle.
dans Eclipse, dans notre projet Web, on fait un clic droit sur le répertoire WebContent, puis on fait new JSP.

On colle le code suivant à l’intérieur :


<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<jsp:useBean id="RequeteInfo" scope="session" class="web2.Bean"></jsp:useBean>
<jsp:setProperty name="RequeteInfo" property="*"></jsp:setProperty>

<html>
<head>
	<title>Merci de votre réponse</title>
</head>

<body>

	<h1>Merci de votre réponse</h1>
	<p>nom initial 	= <%=RequeteInfo.getFirstName() %></p>
	<p>Courses 		= <%=RequeteInfo.getCourses() 	%></p>
	<p>Age 			= <%=RequeteInfo.getAge() 		%></p>

</body>
</html>

Voilà, désormais finalement, si l’on renseigne le formulaire dans le navigateur , puis qu’on clique sur le bouton « soumettre la requête », on voit que les données qu’on a écrit dans les champs input sont « stockées  » par le Bean JAVA, puis que la JSP affiche la page suivante, avec nos variables :

k

 

 

Créer une Jsp qui se connecte à Mysql en utilisant la librairie JSTL:

La librairie JSTL permet de simplier le code lorsque l’on accès à une Base de donnée dans la JSP. Cela rappelle un peu le ng-repeat de AngularJs par exemple.

  1. Créer une base de données comme indiqué ici :http://www.tutorialspoint.com/jsp/jsp_database_access.htm
  2. Créer un dynamic web project dans eclipse appelé web3
  3. Glisser-déposer toutes les librairies en .jar dans le répertoire WebContent/WEB-INF:

ça comprends le jar mysql-connector et tous les 4 jars présents sur cette page :

http://tomcat.apache.org/download-taglibs.cgi

Ensuite, tout siplement créer une JSP et coller le code suivant dedans :

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 
<html>
<head>
<title>SELECT Operation</title>
</head>
<body>
 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/test"
     user="root"  password="root"></sql:setDataSource>

<sql:update dataSource="${snapshot}" var="result">
INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali');
</sql:update> 



<sql:query dataSource="${snapshot}" var="result">
SELECT * from test.employees;
</sql:query>
 
<table border="1" width="100%">
<tr>
   <th>Emp ID</th>
   <th>First Name</th>
   <th>Last Name</th>
   <th>Age</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"></c:out></td>
   <td><c:out value="${row.first}"></c:out></td>
   <td><c:out value="${row.last}"></c:out></td>
   <td><c:out value="${row.age}"></c:out></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

Ensuite, lorsque l’on fait un clic droit sur la jsp puis run on server, on peut voir que la table se peuple correctement :

Sans titre 6

[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 Bean Exemple 2

Java_logo

Introduction


Avec le livre Pure Jsp de Sams en anglais datant de 2000. Ca date d’il y a 20 ans.

On ne comprends pas la différence entre PARAM, PROPERTY et NAME .

Le code :



La JSP :


<%@ 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">
<html>

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	<title>Example de Jsp avec un Bean </title>
</head>


<body>

<!-- Annoncer que le langage de script  c'est java. <%-- <%@ page langage="java" %>  --%>
<%-- <%@ page import="Decompte" %> --%> -->


<!-- Instantier le bean decompte avec un id de counter  -->
<jsp:useBean id="c" scope="session" class="projetWeb3.Decompte" ></jsp:useBean>

<jsp:setProperty name="c" property="count" param="count" ></jsp:setProperty>

<%

out.println("Decompte du code scriplet"+ c.getCount() +" <BR>");



%>

<jsp:getProperty property="count" name="c"></jsp:getProperty></BR>





</body>
</html>

La classe Bean :

package projetWeb3;

public class Decompte {

//	Initialiser le bean sur création :
		int count = 25;
		
//		Constructeur des parametres
//		public Counter(){
//			
//			
//		} 
		
//	GEtter de propriétés
		public int getCount(){
//			incrémenter le decompte propriété a chaque request
			count++;
			return this.count;
		}

//Setter de propriété
		public void setCount(int count){
			this.count = count;
		}





}


[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