Boa tarde pessoal!
Estou tentando utilizar em minha app o Spring para realizar a conexão com o Banco de Dados. Mas, antes de aplicar as alterações em meu projeto resolvi testar a implementação. Pois bem, estou tendo problemas para realizar a conexão com o BD. Ao executar o cadastro do usuário, o console apresenta esse erro devido a falha na conexão:
[quote]“java.lang.NullPointerException
at br.com.dao.UsuarioDao.cadastrar(UsuarioDao.java:29)
at action.UsuarioAction.cadastrar(UsuarioAction.java:33)”[/quote]
Já testei realizar a conexão sem o uso do Spring e funcionou.
Abaixo estarei postando os códigos do teste:
application-servlet.xml:
[code]<?xml version="1.0" encoding="UTF-8"?>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/redesocial"></property>
<property name="username" value="root"></property>
<property name="password" value="brq"></property>
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
</bean>
<bean id="usuarioDao"
class="br.com.dao.UsuarioDao">
<property name="dataSource" ref="dataSource" />
[/code]
UsuarioDao:
package br.com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.sql.DataSource;
import usuario.Usuario;
public class UsuarioDao{
private DataSource dataSource;
public void setDataSource(DataSource dataSource){
this.dataSource = dataSource;
}
public void cadastrar(Usuario u) throws SQLException {
Connection con = null;
PreparedStatement stmt = null;
try {
con = dataSource.getConnection();
stmt = con.prepareStatement("insert into usuario values(null,?,?,?,?,?)");
stmt.setString(1, u.getNome());
stmt.setString(2, u.getLogin());
stmt.setString(3, u.getSenha());
stmt.setString(4, u.getCidade());
stmt.setString(5, u.getEstado());
stmt.execute();
}catch (SQLException e) {
e.printStackTrace();
}
}
}[/code]
[b]UsuarioAction[/b]:
[code]package action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import usuario.Usuario;
import br.com.dao.UsuarioDao;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UsuarioAction extends ActionSupport {
private static final long serialVersionUID = 1144439383053516678L;
private Usuario usuario;
public UsuarioAction() {
usuario = new Usuario();
}
@Action(value="/cadastrar", results = @Result(name="success", location="/index.jsp"))
public String cadastrar() {
HttpServletRequest request = (HttpServletRequest) ActionContext
.getContext().get(ServletActionContext.HTTP_REQUEST);
try {
UsuarioDao ud = new UsuarioDao();
ud.cadastrar(usuario);
request.setAttribute("msg", "cadastrado com sucesso!");
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
}
Como devo realizar essa conexão de forma correta?
Agradeço a atenção.