Olá a todos!
Estou com um problema ao cadastrar no mysql com o meu managed bean.
Aqui é a mensagem de erro:
Grave: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'nome' cannot be null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1041)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1364)
at sonic.action.usuario.UsuarioBean.criarUsuario(UsuarioBean.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)
at com.sun.el.parser.AstValue.invoke(AstValue.java:248)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Aqui é o managed bean:
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package sonic.action.usuario;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.Dependent;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import sonic.action.grupo.GrupoBean;
import sonic.action.professor.ProfessorBean;
import sonic.model.entities.Grupo;
import sonic.model.entities.Usuario;
import sonic.model.repositories.ConnectionFactory;
/**
*
-
@author Felipe
*/
@Named(value = “usuarioBean”)
@Dependent
public class UsuarioBean {private String nome;
private String senha;
private Grupo groupid;
private Usuario usuario;public Usuario getUsuario() {
return usuario;
}public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}public Grupo getGroupid() {
return groupid;
}public void setGroupid(Grupo groupid) {
this.groupid = groupid;
}public String getNome() {
return nome;
}public void setNome(String nome) {
this.nome = nome;
}public String getSenha() {
return senha;
}public void setSenha(String senha) {
this.senha = senha;
}public String criarUsuario() {
System.out.println(">>>>>>>>>>>>>Entrou aqui!!!<<<<<<");
System.out.println(nome);
System.out.println(senha);
String retorno = null;
try {
FacesMessage msg;
Connection con = ConnectionFactory.GetConnection();
String sql = “INSERT INTO Usuario VALUES (nome = ?, senha = ?, groupid = ?)”;
// cria um preparedStatement
PreparedStatement stmt = con.prepareStatement(sql);stmt.setString(1, nome); stmt.setString(2, senha); stmt.setObject(3, groupid); System.out.println(sql); stmt.execute(); stmt.close(); con.close(); retorno = "index?faces-redirect=true"; msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Usuario Cadastrado com Sucesso", ""); FacesContext.getCurrentInstance().addMessage(null, msg); return retorno; } catch (SQLException ex) { Logger.getLogger(UsuarioBean.class.getName()).log(Level.SEVERE, null, ex); return retorno; }
}
public String editarUsuario() {
FacesMessage msg;
String retorno = “listar?faces-redirect=true”;
try {
Connection con = ConnectionFactory.GetConnection();
String sql = “UPDATE Usuario SET nome = ?, senha = ?, groupid = ? WHERE nome = ?”;// cria um preparedStatement PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, usuario.getNome()); stmt.setString(2, usuario.getSenha()); stmt.setObject(3, usuario.getGroupid()); stmt.setString(4, usuario.getNome()); System.out.println("Entrou aqui!!!!"); stmt.executeUpdate(); //fecha a conexão stmt.close(); con.close(); msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Usuario Editado com Sucesso", ""); FacesContext.getCurrentInstance().addMessage(null, msg); return retorno; } catch (SQLException ex) { Logger.getLogger(ProfessorBean.class.getName()).log(Level.SEVERE, null, ex); return retorno; }
}
public String deletarUsuario() {
String retorno = “listar”;
FacesMessage msg;
try {
Connection con = ConnectionFactory.GetConnection();
String sql = “DELETE FROM Usuario WHERE nome = ?”;// cria um preparedStatement PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, nome); System.out.println("Entrou aqui!!!!"); stmt.execute(); //fecha a conexão stmt.close(); con.close(); msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Usuario Removido com Sucesso", ""); FacesContext.getCurrentInstance().addMessage(null, msg); return retorno; } catch (SQLException ex) { Logger.getLogger(ProfessorBean.class.getName()).log(Level.SEVERE, null, ex); return retorno; }
}
public List listar() {
ArrayList usuarios = new ArrayList();
try {
Connection con = ConnectionFactory.GetConnection();
String sql = “SELECT * FROM Usuario”;// cria um preparedStatement PreparedStatement stmt = con.prepareStatement(sql); // executa o select ResultSet rs = stmt.executeQuery(); System.out.println(rs.toString()); // itera no ResultSet while (rs.next()) { System.out.println(rs.getString("nome")); System.out.println(rs.getString("senha")); System.out.println(rs.getObject("groupid")); System.out.println("----"); Usuario u = new Usuario(); u.setNome(rs.getString("nome")); u.setSenha(rs.getString("senha")); usuarios.add(u); } //fecha a conexão stmt.close(); con.close(); return usuarios; } catch (SQLException ex) { Logger.getLogger(GrupoBean.class.getName()).log(Level.SEVERE, null, ex); return usuarios; }
}
/**
- Creates a new instance of UsuarioBean
*/
public UsuarioBean() {
}
}
[/code]
- Creates a new instance of UsuarioBean
Aqui é a página xhtml:
[code]<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui=“http://java.sun.com/jsf/facelets"
template=”./…/modeloPrincipal.xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h=“http://java.sun.com/jsf/html”>
<ui:define name="content">
<p:growl id="growl" showDetail="true" life="3000" />
<h:form id="cadastro">
<h:panelGrid columns="2" cellpadding="5">
<h:outputText value="Nome do Usuário:" />
<h:inputText id="name" title="Digite o nome de usuário a ser criado" value="#{usuarioBean.nome}"/>
<h:outputText value="Senha do Usuário:" />
<h:inputText id="password" title="Digite senha do usuário" value="#{usuarioBean.senha}"/>
<h:outputText value="Grupo do Usuário:" />
<h:selectOneMenu value="#{usuarioBean.groupid}">
<f:converter converterId="usuarioConverter" />
<f:selectItem itemLabel="Selecione" itemValue="" />
<f:selectItems value="#{grupoBean.listar()}" var="grupo" itemLabel="#{grupo.nome}" itemValue="#{grupo.groupid}"/>
</h:selectOneMenu>
<h:commandButton action="#{usuarioBean.criarUsuario()}" value="Salvar"/>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
[/code]
Aparentemente tudo está certo, mas não está funcionando
Vocês sabem o que pode ser?
Desculpem se o código está um pouco bagunçado. Quando funcionar eu organizo ele
Agradeço a ajuda de todos!