Poster un commentaire ou une réponse
Requêtes CRUD (Classes DAO)

nb posts:722
nb discussions:131
inscrit le :02-12-2014
Chaque classe DAO contient les méthodes de liaison avec la base de données, appelées CRUD (pour Create, Request, Update, Delete).
On va voir un exemple pour chaque requête

nb posts:722
nb discussions:131
inscrit le :02-12-2014
On va continuer avec l'exemple de la discussion suivante:
http://www.lesdeveloppeurs.net/Java-connexion-a-la-base-de-donnee-DAO--236
On crée dans notre base de donnée une table "user" ayant "userid" et "name" comme colonne
et On ajoute le package Domain dans notre projet. dans "Domain" on ajoute la classe User qui contient ce code:
package Domain;
public class User {
private int id;
private String name;
public User() {
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
On ajoute un package "DAO" quiva contenir les classes DAO qu'on verra par la suite

nb posts:722
nb discussions:131
inscrit le :02-12-2014
On ajoute la classe "UserDao" dans le pckage DAO et on insère le code suivant:
package DAO;
import java.sql.Statement;
import Domain.User;
import Util.MyConnectionMysql;
public class UserDao {
private static Statement statement = MyConnectionMysql.giveMeStatement();
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
---------------CREATE---------------
On va voir comment insérer (créer) une ligne dans notre table:
Voici le code d'insertion dans la table a mettre dans la classe "UserDao"
public static boolean addUser(User user) {
boolean b = false;
try {
String sql = "insert into user (name) values ('" + user.getName()
+ "')";
System.out.println(sql);
statement.executeUpdate(sql);
System.out.println("user added ...");
b = true;
} catch (Exception e) {
System.err.println("problem in insertion ...");
}
return b;
}
Publicité

nb posts:722
nb discussions:131
inscrit le :02-12-2014
---------------DELETE---------------
Voici le code de suppression d'une ligne de la table a mettre dans la classe "UserDao"
public static boolean deleteUser(User user) {
boolean b = false;
try {
String sql = "delete from user where userid='" +user.getId()+"'";
System.out.println(sql);
statement.executeUpdate(sql);
System.out.println("User deleted ...");
b = true;
} catch (Exception e) {
System.err.println("problem in deleting ...");
}
return b;
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
------------REQUEST-------------
Voici le code de sélection (affichage) de toute la table (a mettre dans la classe "UserDao")
public static void showUsers() {
boolean b = false;
try {
String sql="select * from user";
System.out.println(sql);
System.out.println("Selection users ...");
ResultSet resultSet =statement.executeQuery(sql);
while(resultSet.next())
{
System.out.print(resultSet.getString("userid")+"\t");
System.out.print(resultSet.getString("name")+"\t");
System.out.println("");
}
} catch (Exception e) {
System.err.println("problem in insertion ...");
}
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
------------UPDATE-------------
Voici le code de modification d'une ligne de la table (a mettre dans la classe "UserDao")
public static void update(int id ,String name)
{
String sql="update user set name='"+name+"' where userid="+id+"";
int nblignesaffectees = 0;
try {
nblignesaffectees = statement.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(nblignesaffectees);
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
On veut tester nos fonction.
On ajoute les classes suivantes (avec leurs codes) sous le package "Mains" et on exécute
------Ajout:
package Mains;
import DAO.UserDao;
import Domain.User;
public class TestAddUser {
public static void main(String[] args) {
User user = new User();
user.setName("fff");
System.out.println(UserDao.addUser(user));
}
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
--------------Suppression
package Mains;
import DAO.UserDao;
import Domain.User;
public class TestDeleteUser {
public static void main(String[] args) {
User u=new User();
u.setId(1);
u.setName("les dev");
UserDao.deleteUser(u);
UserDao.showUsers();
}
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
--------REQUEST
package Mains;
import DAO.UserDao;
import Domain.User;
public class TESTshowUsers {
public static void main(String[] args) {
UserDao.showUsers();
}
}
Publicité

nb posts:722
nb discussions:131
inscrit le :02-12-2014
-----------Update (modification)
package Mains;
import DAO.UserDao;
import Domain.User;
public class Testupdateuser {
public static void main(String[] args) {
UserDao.update(1, "les dev");
UserDao.showUsers();
}
}

nb posts:722
nb discussions:131
inscrit le :02-12-2014
Voici le projet:

nb posts:722
nb discussions:131
inscrit le :02-12-2014
Poster |