TUTORIELS 
Manipuler des données avec un servlet via JDBC

Page 1 | 2

Présentation d'un premier servlet simple mettant en application les pilotes JDBC de Java pour manipuler les informations d'une base de données.
 (10 janvier 2003)
 

Introduction
Comme nous l'avons vu en fin d'un précédent article sur les servlets, ceux-çi sont principalement utiles lorsqu'il s'agit d'accéder à une base de données au travers de JDBC. Nous allons donc poursuivre les articles "Débuter avec le servlets Java" et "Introduction à JDBC" en écrivant un premier servlet simple faisant appel à JDBC.

Vous devez avant tout disposer des outils nécessaires, à savoir: le SDK Java2, qui contient l'extension Java Servlet permettant à votre serveur de se servir des servlets, et un serveur, évidemment, comme Tomcat du projet Apache.

Le servlet
Le servlet JDBC que nous allons vous présenter va lancer un appel sur une base de données et renvoyer les données au format HTML. Un servlet se construit à partir d'une classe Servlet de base et en lui définissant des méthodes Java pour gérer les requêtes en entrée du client.

(fichier servlet.java)
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DBServlet extends HttpServlet
  {
  private Connection con;
  private PrintWriter out;

  public void init(ServletConfig conf) throws ServletException
    {
    super.init(conf);
    try
      {
      Class.forName("omnidex.jdbc.OdxJDBCDriver");
      con =DriverManager.getConnection ("jdbc:omnidex:c:/datas/test.dsn", "login", "mdpasse");
      }
    catch(Exception e)
      {
      System.err.println(e);
      }
    }

  public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
    {
    res.setContentType("text/html");
    try
      {
      out = res.getWriter();
      out.println("<html><head><title>");
      out.println("JDBC Servlet");
      out.println("</title></head><body>");
  
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT nom FROM clients WHERE id > 20");
      out.println("<UL>");
  
      while(rs.next())
        {
        out.println("<LI>" + rs.getString("nom"));
        }
      out.println("</UL>");
      rs.close();
      stmt.close();
      }
    catch(SQLException e)
      {
      out.println("Exception SQL");
      }
    catch(IOException e)
      {
      system.err.println("Exception I/O");
      }

    out.println("</body></html>");
    out.close();
    }

  public void destroy()
    {
    try
      {
      con.close();
      }
    catch(SQLException e)
      {
        ;
      }
    }
  }

Nous décrivons le servlet page suivante...

Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page