com.mysql.jdbc.Ausnahmen.jdbc4.MySQLIntegrityConstraintViolationexception: Spalte 'hourId' kann nicht null sein

Mein Projekt ist die Fakultät Zuordnung. wenn ich versuche, Daten einzufügen, zeigt es die folgende Ausnahme.

"com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 
Column 'hourId' cannot be null"

Kann mir jemand helfen wie dieses problem zu überwinden?
Bitte geben Sie Beispiel-code, um diese Ausnahme.

Meine Codierung ist

<%
    Connection con = null;
    String StaffName = request.getParameter("StaffName");
   //String subcode = request.getParameter("subcode");
    String hourId = request.getParameter("hourId");
    String daysId = request.getParameter("daysId");
    String date = request.getParameter("date");


  //String queryText = "insert into tblstaffallocation (StaffName, subcode,hourId, daysId, date) values('"+StaffName+"','"+subcode+"','+hourId+','+daysId+','+date+')";

    try {
          Class.forName("com.mysql.jdbc.Driver");
          con = DriverManager.getConnection("jdbc:mysql://localhost:3306/StaffAllocation","root","success");

       //PreparedStatement stat = con.PrepareStatement();
        String updateString ="INSERT INTO tblstaffallocation (StaffName,hourId,daysId,date) VALUES (?,?,?,?)";

        PreparedStatement preparedStatement = con.prepareStatement(updateString);


        preparedStatement.setString(1, StaffName);
        preparedStatement.setString(2, hourId);
        preparedStatement.setString(3, daysId);
        preparedStatement.setString(4, date);
        preparedStatement.executeUpdate();
        //int rst = stat.executeUpdate("insert into tblstaffallocation ('StaffName','hourId', 'daysId', 'date') values('"+StaffName+"','"+hourId+"','"+daysId+"','"+date+"')");

        %>
        <table cellpadding="4" border="1" cellspacing="4" align="center">
        <th>StaffName</th><th>hourId</th><th>daysId</th><th>date</th>
        <%
        Statement st=con.createStatement();
        ResultSet rs=st.executeQuery("select * from tblstaffallocation");
        while(rs.next()){
            rs.getString(1);
            rs.getString(2);
            rs.getString(3);
            rs.getString(4);

        }
        } catch (Exception e) { 
        out.print(e);

    }
  • ändern column_name auf null-Werte zulässt
  • oder geben Sie den Namen
  • ich habe versucht, dass, wenn ich Daten in die Tabelle eingefügt, die Codierung funktioniert. aber wenn ich select * from tblstaffallocation. alle eingegebenen Werte andere als staffname sind, werden als null-Wert.
  • hourid Spalte nicht accpet null.Stellen Sie sicher, dass Anfrage.getParameter("hourId"); nicht null zurückgeben
  • ich dont bekommen Sie, welchen Namen soll ich angeben? bitte etwas konkreter
  • sorry, ich meinte hourId 🙂
  • Bitte, können Sie Ihre Tabelle create-Anweisung? Ich denke, du machst einen setString in das preparedStatement nicht für varchar-Spalten, einige Daten, die nicht konvertiert werden
  • staffname varchar(30); hourId int(11) not null; daysId int(11) not null, Datum datetime not null;
  • Ok, staffname ist vom Datentyp varchar und funktioniert gut, was ist mit den anderen Spalten? Auch versuchen, zu drucken, Ihre hourId, daysId, date Parameter den Inhalt überprüfen (Debuggen oder Druck) und sicher sein, Sie sind nicht null
  • ich habe versucht, sowohl die Fälle. ich habe diese Ausnahme "java.sql.SQLException: Incorrect integer value: "for column 'hourId' in Zeile 1" wenn ich die geänderten Spalten in null-Werte zulässt 🙁
  • Wenn Sie versucht, den code in der Antwort unten, die Fehlermeldung bedeutet, dass request.getParameter("hourId") gibt null zurück, und hourId festgelegt ist "". Überprüfen Sie Ihre GET-Parameter etwas falsch ist es.

InformationsquelleAutor user2951465 | 2013-11-19
Schreibe einen Kommentar