Erreur sur la requete

Fermé
samiapirou Messages postés 112 Date d'inscription dimanche 16 juin 2013 Statut Membre Dernière intervention 11 novembre 2015 - 22 avril 2015 à 11:46
bonjour ,svp pouvez m'aider a résoudre cette erreur c'est urgent,
a chaque fois que je fait l'ajout j'ai une exception : MySQLIntegrityConstraintViolationException
voici ce qui m'affiche sur la console:
WARNING *********** NetBeans HTTP Monitor ************
The request cannot be recorded most likely because the NetBeans HTTP Monitor module is disabled.
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'lib_spec' cannot be null

voici le code:


package metier;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;


public class OperationSepecialite {

private ArrayList<Specialite> Specialites =new ArrayList<Specialite>();

public ArrayList<Specialite> getSpecialites() {
return Specialites;
}

public void setSpecialites(ArrayList<Specialite> Specialites) {
this.Specialites = Specialites;
}






public void add(Specialite s){

try {

Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
PreparedStatement pr=cn.prepareStatement("INSERT INTO specialite VALUES(NULL,?)");

pr.setString(1, s.getLib_spec());

pr.execute();

}


// Etudiants.add(e);
catch (Exception ex) {

ex.printStackTrace();

}

}


public void remove(int id_spec)
{

// for(Etudiant e: Etudiants){
// if(e.getID()==ID){
// Etudiants.remove(e);
//break;

//}
// }

try {
Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
PreparedStatement pr=cn.prepareStatement("DELETE FROM specialite WHERE id_spec = ? ");

pr.setInt(1, id_spec);
pr.execute();

}


// Etudiants.add(e);
catch (Exception ex) {

ex.printStackTrace();

}




}
public ArrayList getAll(){
ArrayList listSpec= new ArrayList<Specialite>();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
PreparedStatement pr = cn.prepareStatement("SELECT * FROM specialite");



ResultSet rs = pr.executeQuery();
while(rs.next()){
Specialite s = new Specialite();
s.setId_spec(rs.getInt("id_spec"));
s.setLib_spec(rs.getString("lib_spec"));


listSpec.add(s);


}

}


//Etudiants.add(e);
catch (Exception ex) {

ex.printStackTrace();

}

return listSpec;

}


}


et aussi la servlet:



public class SpecialiteServlet extends HttpServlet {
public static final long serialVersionUID = 1L;
OperationSepecialite os = new OperationSepecialite();


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


if (request.getParameter("action")!=null){


// System.out.println("ok");

// traitement


}
else
{
String lib_spe=request.getParameter("lib_spec");





//creation des objet


Specialite s = new Specialite(1, lib_spe);
os.add(s);


// traitement


}
SpecialiteBeans sb=new SpecialiteBeans();

request.setAttribute("modele", sb);
request.getRequestDispatcher("AjoutSpecialite.jsp").forward(request, response);
}




}






merci.