Servlet et base de donnée Mysql

Ce tutoriel vous explique comment accéder à une base de données mysql via une Servlet, assurez-vous que vous avez configuré l'environnement JDBC approprié .

Pour commencer , nous allons créer une table et y insérer quelques enregistrements comme suit:

Créer une table

Pour créer la table Employees dans la base de données test, utilisez les étapes suivantes:

mysql> use test; mysql> create table Employees     (      id int not null,      age int not null,      first varchar (255),      last varchar (255)     ); Query OK, 0 rows affected (0.08 sec) mysql>

Créer des enregistrements

Vous insérer ensuite  ces données dans la table employés comme suit:

mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali'); Query OK, 1 row affected (0.05 sec)   mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma'); Query OK, 1 row affected (0.00 sec)   mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan'); Query OK, 1 row affected (0.00 sec)   mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal'); Query OK, 1 row affected (0.00 sec)   mysql>

Remarque : vous pouvez utiliser easyPHP ou wamps pour la création de la table et l'insertion des données. 

Configuration du path 

Ajouter l'archive jar mysql-connector-java-5.0.8.jar dans le dossier lib du Tomcat (C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib). Vous pouvez télécharger le jar à partir de ce lien.

Accéder à la base de données:

Voici un exemple qui montre comment accéder à la base de données test à l'aide d'une servlets. Vous pouvez télécharger la source .java à partir de ce lien.

// Loading required libraries import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*;   

public class DatabaseAccess extends HttpServlet{        public void doGet(HttpServletRequest request,                     HttpServletResponse response)             throws ServletException, IOException   {       // JDBC driver name and database URL       final String JDBC_DRIVER="com.mysql.jdbc.Driver";         final String DB_URL="jdbc:mysql://localhost/test";        //  Database credentials       final String USER = "root";       final String PASS = "";        // Set response content type       response.setContentType("text/html");       PrintWriter out = response.getWriter();       String title = "Database Result";       out.println("<html>\n" +          "<head><title>" + title + "</title></head>\n" +          "<body bgcolor=\"#f0f0f0\">\n" +          "<h1 align=\"center\">" + title + "</h1>\n");       try{          // Register JDBC driver          Class.forName(JDBC_DRIVER);

          // Open a connection          Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);           // Execute SQL query          Statement stmt = conn.createStatement();          String sql;          sql = "SELECT id, first, last, age FROM Employees";          ResultSet rs = stmt.executeQuery(sql);           // Extract data from result set          while(rs.next()){             //Retrieve by column name             int id  = rs.getInt("id");             int age = rs.getInt("age");             String first = rs.getString("first");             String last = rs.getString("last");              //Display values             out.println("ID: " + id);             out.println(", Age: " + age);             out.println(", First: " + first);             out.println(", Last: " + last + "<br>");          }          out.println("</body></html>");           // Clean-up environment          rs.close();          stmt.close();          conn.close();       }catch(SQLException se){          //Handle errors for JDBC          se.printStackTrace();       }catch(Exception e){          //Handle errors for Class.forName          e.printStackTrace();       }    } } 

Maintenant appeler cette servlet en utilisant l'URL http://localhost:8080/DatabaseAccess qui affiche le résultat suivant:

Base de données  de résultats

 ID :  100 ,  Age :  18 ,  First :  Zara ,  Last :  Ali  

ID :  101 ,  Age :  25 ,  First :  Mahnaz ,  Last :  Fatma  

ID :  102 ,  Age :  30 ,  First :  Zaid ,  Last :  Khan  

ID :  103 ,  Age :  28 ,  First :  Sumit ,  Last :  Mittal