Bonjour,

J'essaye d'accéder à mysql pour supprimer des données à partir d'unn programme java. La suppression marche mais ça déclenche cette exception : Connection reset by peer: socket write error. Je ne comprends pas le problème. Veuillez m'aider s'il vous plait.
Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package Tp02;
 
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
 
public class C1 {
static ObjectOutputStream o;
static ObjectInputStream i1;
static Socket s;
 
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		s=new Socket("localhost",15);
		while(true){
 
Scanner e=new Scanner(System.in);
o=new ObjectOutputStream(s.getOutputStream());
 
System.out.println("entrer un entier entre 0 et 2");
int n=e.nextInt();
o.writeObject(Integer.toString(n));
switch(n){
case 0:System.out.println("insertion d'un etudiant");System.out.println("entrer un matricule");
	String mat1=e.next();
 
o.writeObject(mat1);
System.out.println("entrer un nom");
String nom=e.next();
o.writeObject(nom);
System.out.println("entrer un prenom");
String prenom=e.next();
o.writeObject(prenom);
 i1=new ObjectInputStream(s.getInputStream());
String res_insert=(String) i1.readObject();
System.out.println(res_insert);
break;
 
case 1 :
System.out.println("suppression d'un etudiant");
System.out.println("entrer un matricule");
String matricule=e.next();
ObjectOutputStream o1=new ObjectOutputStream(s.getOutputStream());
o1.writeObject(matricule);
ObjectInputStream inp=new ObjectInputStream(s.getInputStream());
String res_supp=(String) inp.readObject();
int nb=Integer.parseInt(res_supp);
if(nb>0) System.out.println("suppression effectuée");
else System.out.println("suppression echouée");
//System.out.println(res_supp);
 
break;
 
case 2:
System.out.println("affichage des informations d'un etudiant");
System.out.println("entrer un matricule");
String matri=e.next();
ObjectOutputStream o2=new ObjectOutputStream(s.getOutputStream());
o2.writeObject(matri);
ObjectInputStream i2=new ObjectInputStream(s.getInputStream());
String l=(String) i2.readObject();
//for(int k=0;k<l.length();k++)
System.out.println(l.toString());
 
}
		}
	}
 
 
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
 
package Tp02;
 
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.LinkedList;
 
import tp2.RmiP3;
 
public class C2{
static Registry reg;
static int port=15,port1=20;
static String adr="localhost";
static ServerSocket s;
static Socket con;
static I3 rm;
static ObjectOutputStream o,out5,out1;
static ObjectInputStream i;
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
	s=new ServerSocket(port);
 con=s.accept();
 while(true){
 
 i=new ObjectInputStream(con.getInputStream());
 
reg=LocateRegistry.getRegistry(adr,port1);
rm=(I3) reg.lookup("r3");
String nombre=(String) i.readObject();
int nb=Integer.parseInt(nombre);
 
//ObjectInputStream i=new ObjectInputStream(con.getInputStream());
 
switch(nb){
case 0:
	String matricule=(String) i.readObject();
	String nom=(String) i.readObject();
	String prenom=(String) i.readObject();
 
 
int etat=rm.inserer(matricule, nom, prenom);
 
if(etat==1)
{
	String res_insert = "insertion effectuée";
	 o=new ObjectOutputStream(con.getOutputStream());
	 o.writeObject(res_insert);
}
else {
	String res_insert = "insertion echouée";
	 o=new ObjectOutputStream(con.getOutputStream());
	 o.writeObject(res_insert);
}
break;
case 1 :
	try{
	ObjectInputStream in=new ObjectInputStream(con.getInputStream());
	String mat=(String) in.readObject();
	int etat_delete=rm.supprimer(mat);
	System.out.println(etat_delete);
	  ObjectOutputStream p=new ObjectOutputStream(con.getOutputStream());
	  String res_delete=Integer.toString(etat_delete);
	 p.writeObject(res_delete);
	 p.flush();
 
/*	if(etat_delete>0){
	  String res_supp = "suppression effectuée";
	//  System.out.println(con.toString());
 
	  out5=new ObjectOutputStream(con.getOutputStream());
 
		 //System.out.println(res_supp);
 
		 out5.writeObject(res_supp);
 
	}
	else {
		String res_supp = "suppression echouée";
		out1.writeObject(res_supp);
	}*/
	}
	catch(Exception e){
		System.out.println(e.getMessage());
	}
	break;
case 2 :
	LinkedList l=new LinkedList();
	ObjectInputStream i2=new ObjectInputStream(con.getInputStream());
	String matri=(String) i2.readObject();
	l=rm.afficher(matri);
 
	out1=new ObjectOutputStream(con.getOutputStream());
	 out1.writeObject(l.toString());
	 for(int j=0;j<l.size();j++){
		 out1.writeObject(l.get(j));
	 }
 
 
	}
	}
	}
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
package Tp02;
 
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;
 
import RMI.ServRmi;
 
public class C3 extends java.rmi.server.UnicastRemoteObject implements I3 {
	static int etat,etat_delete,port=20;
	static Registry reg;
	public C3()throws RemoteException{
 
	}
 
	public int  inserer(String matricule,String nom,String prenom) throws Exception,SQLException{
 
		String ch;
		String url="jdbc:mysql://localhost:3306/";
		String user="";
		String pwd="";
		String db="";
		java.sql.Connection con;
		String driver="com.mysql.jdbc.Driver";
		Class.forName(driver).newInstance();
		con=DriverManager.getConnection(url+db, user, pwd);
		//con.setAutoCommit(false);
		//System.out.println("connection etablie");
		//Statement t=con.createStatement();
		String query="INSERT INTO `etudiant` (`matricule`, `nom`, `prenom`) VALUES (?,?,?)";
		PreparedStatement t=con.prepareStatement(query);
		t.setString(1,matricule);
		t.setString(2,nom);
		t.setString(3,prenom);
		int etat=t.executeUpdate();
		//con.commit();
 
 
		//con.setAutoCommit(true);
 
		return etat;
		//
 
 
	}
 
	public int supprimer(String matri) throws Exception{
 
		String url="jdbc:mysql://localhost:3306/";
		String user="";
		String pwd="";
		String db="";
		java.sql.Connection con;
		String driver="com.mysql.jdbc.Driver";
		Class.forName(driver).newInstance();
		con=DriverManager.getConnection(url+db, user, pwd);
		//System.out.println("connection etablie");
		//Statement t=con.createStatement();
		String query="delete from `etudiant` where matricule=?;";
		PreparedStatement p=con.prepareStatement(query);
		p.setString(1, matri);
		etat_delete=p.executeUpdate();
		//con.commit();
		return etat_delete;
	}
	public LinkedList afficher(String matricule) throws Exception{
 
		String url="jdbc:mysql://localhost:3306/";
		String user="";
		String pwd="";
		String db="";
		java.sql.Connection con;
		String driver="com.mysql.jdbc.Driver";
		Class.forName(driver).newInstance();
		con=DriverManager.getConnection(url+db, user, pwd);
		//Statement s=con.createStatement();
		String query="SELECT nom,prenom FROM `etudiant` WHERE matricule=?;";
		PreparedStatement p=con.prepareStatement(query);
		p.setString(1, matricule);
		ResultSet rs;
		rs=p.executeQuery();
		LinkedList tab=new LinkedList();
 
				while(rs.next()){
					String resultat="nom de l'etudiant est: "+rs.getString("nom")+","+"Son prenom est: "+rs.getString("prenom")+"\n";
					tab.add(resultat);
 
				}
 
				return tab;
 
		//System.out.println("connection etablie");
	}
 
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		C3 c=new C3();
		reg=LocateRegistry.createRegistry(port);
		System.out.println("registre crée");
		reg.rebind("r3", c);
 
	}
 
}