ÈÑÇãÌ

ãä ÝÑäÓÇ Çá ÈÑÇãÌ äÊ äÇÊí áßã ÈÌÏíÏ ÇáÌÇÝÇ [ÇáÃÑÔíÝ] - ÈÑÇãÌ äÊ

ÇáãÓÇÚÏ ÇáÔÎÕí ÇáÑÞãí

ãÔÇåÏÉ ÇáäÓÎÉ ßÇãáÉ : ãä ÝÑäÓÇ Çá ÈÑÇãÌ äÊ äÇÊí áßã ÈÌÏíÏ ÇáÌÇÝÇ


zakimoulayabdellah
06-28-2007, 02:26 PM
ÇáÓáÇã Úáíßã æ ÑÍãÉ Çááå ÊÚÇáì

ÇáÍÞíÞÉ ÇÓãÍæáí Çä ÇÊÞÏã ÈÇÚÊÏÇÑ áÌãíÚ Úä ÊÛíÈí ßá åÏå ÇáãÏÉ

Çáíæã ÇÊíÊ áßã ÈÚÏÉ ãÑÇÌÚ ÈÇ ááÛÉ ÇáÝÑäÓíÉ
æÇáÊí ÇÓÊÝÏÊ ãäåÇ ßËíÑÇ ÎáÇá ÇáÊÏÑíÈ ÇáÏì ÞãÊ Èå

je vais faire une initiation sur labase de JDBC

jdbc = java database conectivity
c a d une maniere d'accéeder au donner a travers un un code java
avant l apparition de JDBC on est obliger de passer avec ODBC
il était difficile d’accéder à des
bases de données SQL depuis Java :



Objectifs de JDBC

Permettre aux programmeurs Java d’écrire un
code indépendant de la base de données et du
moyen de connectivité utilisé
Réalisé par l’API JDBC :

une interface uniforme permettant un accès homogène aux SGBD

simple à mettre en oeuvre

indépendant de la SGBD cible

supportant les fonctionnalités de base du langage SQL


Est fournie par le package java.sql

permet de formuler et gérer les requêtes aux bases de
données relationnelles

8 interfaces :
Statement
CallableStatement, PreparedStatement
DatabaseMetaData, ResultSetMetaData
ResultSet,
Connection
Driver

Principe de fonctionnement

Chaque base de données utilise un pilote (driver)
qui lui est propre et qui permet de convertir les
requêtes JDBC dans le langage natif du SGBDR.



Un modèle à 2 couches

La couche externe : API JDBC

c’est la couche visible et utile pour développer des
applications Java accédant à des SGBDR
— représentée par le package java.sql


Les couches inférieures :

destinées à faciliter l’implémentation de drivers pour
des bases de données

représentent une interface entre les accès de bas
niveau au moteur du SGBDR et la partie applicative


voila un lien pour trouver toutes les drivers
http://www.javasoft.com/products/jdbc/drivers.html

Mettre en oeuvre JDBC
Importer le package java.sql
1. Enregistrer le driver JDBC
2. Etablir la connexion à la base de données
3. Créer une zone de de******ion de requête
4. Exécuter la requête
5. Traiter les données retournées
6. Fermer les différents espaces


Enregistrer le driver JDBC

Méthode forName() de la classe Class :
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("oracle.jdbc.driver.OracleDriver");


URL de connexion


Accès à la base via un URL de la forme :
jdbc:<sous-protocole>:<nom-BD>;param=valeur, ...


Exemples :
String url = "jdbc:odbc:maBase" ;
String url = "jdbc:msql://leo.inria.fr:1114:maBase";


Connexion à la base


Méthode getConnection() de DriverManager
3 arguments :
— l’URL de la base de données
— le nom de l ’utilisateur de la base
— son mot de passe
Connection connexion =
DriverManager.getConnection(url,user,password);



Création d’un Statement

L’objet Statement possède les méthodes
nécessaires pour réaliser les requêtes sur la base
associée à la connexion dont il dépend

3 types de Statement :
Statement : requêtes statiques simples
PreparedStatement : requêtes dynamiques précompilées
(avec paramètres d’entrée/sortie)
CallableStatement : procédures stockées



A partir de l’instance de l’objet Connection, on
récupère le Statement associé :
Statement req1 = connexion.createStatement();
PreparedStatement req2 = connexion.prepareStatement(str);
CallableStatement req3 = connexion.prepareCall(str);




Exécution d’une requête


3 types d’exécution :
executeQuery() : pour les requêtes (SELECT) qui
retournent un ResultSet (tuples résultants)
executeUpdate() : pour les requêtes (INSERT,
UPDATE, DELETE, CREATE TABLE, DROP TABLE)
qui retournent un entier (nombre de tuples traités)
execute() : procédures stockées (cas rares)



Traiter les données retournées


L ’objet ResultSet (retourné par l’exécution de
executeQuery() ) permet d’accéder aux champs
des tuples sélectionnés

n234008
06-28-2007, 09:40 PM
ننتظر المزيد منك

zakimoulayabdellah
06-28-2007, 09:56 PM
ääÊÙÑ ÇáãÒíÏ ãäß

ÇåÏÇ åæ ÌæÇÇÇÇÈß

i just travling more than 3 days and i hope to see o more thanks
but i dont understand whay you tell me thats !!!

AJAX
06-29-2007, 07:09 PM
شكرا لك اخي زاكي واصل ابداعك

zakimoulayabdellah
06-30-2007, 12:23 PM
thanks Mr AJAX for you apploding

zakimoulayabdellah
07-19-2007, 07:29 PM
aujourd'hui je vous présente un code source tres optimise au niveau de JAVA
en faite dans la premier partie je vous ecrire une classe tres simple qui décrit le panux de notre travail

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;


public class RainPanel extends JPanel{
private static int DEFAULT_WIDTH = 500;
private static int DEFAULT_HEIGHT = 500;
private static int NUM_DROPS = 500;

private RainDrop[] rainDrops = new RainDrop[500];

public RainPanel(){
createRainDrops();
createPanel();
}

private void createRainDrops(){
for(int i = 0; i < rainDrops.length; ++i){
createRainDrop(i);
}
}

private void createRainDrop(int index){
int randomX = (int) (Math.random()*500);
int randomY = (int) (Math.random()*300);
int randomV = (int) (Math.random()*10);

rainDrops[index] = new RainDrop(randomX, randomY, randomV);
}

private void createPanel(){
this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
this.setBackground(Color.WHITE);
}

public void paint(Graphics g){
for(int i = 0; i < rainDrops.length; ++i){
rainDrops[i].paint(g);

if(rainDrops[i].x > DEFAULT_WIDTH || rainDrops[i].y > DEFAULT_HEIGHT){
createRainDrop(i);
}
}
}
}

qui prend en charge la methode paint qui est en haut

dans la deuxieme partie une classe de Drop c a d de suppression ce qu on a dessiner

import java.awt.Graphics;


public class RainDrop{
protected int x, y, velocity;
private static int DELTA = 5;

public RainDrop(int _x, int _y){
this(_x, _y, 0);
}

public RainDrop(int _x, int _y, int _v){
this.x = _x;
this.y = _y;
this.velocity = _v;
}

public void paint(Graphics g){
g.drawLine(x, y, x+DELTA, y+DELTA);
x = x + DELTA + velocity;
y = y + DELTA + velocity;
}
}


et la methode main

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.Timer;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class RainFrame extends JFrame implements ActionListener{
private static int DEFAULT_WIDTH = 500;
private static int DEFAULT_HEIGHT = 500;

private RainPanel panel = new RainPanel();
private Timer timer = new Timer(100, null);

public RainFrame(){
createFrame();
timer.addActionListener(this);
}

private void createFrame(){
this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
this.setBackground(Color.WHITE);

this.setContentPane(panel);

this.setResizable(false);
this.setVisible(true);
}

public void start(){
timer.start();
}

public static void main(String[] args) {
RainFrame rf = new RainFrame();
rf.start();
}

public void paint(Graphics g){
g.clearRect(0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT);
g.setColor(Color.blue);
panel.paint(g);
}

public void actionPerformed(ActionEvent e){
repaint();
}
}


bon merci de votre question

a + :smailes95: :smailes95: :smailes95: