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