E ai galera tudo bem?
O problema é o seguinte to (tentando) desenvolvendo um sisteminha e começando com um login. O problema é que aqui eu to usando um banco chamado informix (IBM).
Quando eu tento fazer um select no banco ele me retorna a seguinte msg
exception
javax.servlet.ServletException: java.sql.SQLException: An illegal character has been found in the statement.
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.sql.SQLException: An illegal character has been found in the statement.
com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:373)
com.informix.jdbc.IfxSqli.a(IfxSqli.java:3208)
com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518)
com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)
com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)
com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1153)
com.informix.jdbc.IfxPreparedStatement.e(IfxPreparedStatement.java:318)
com.informix.jdbc.IfxPreparedStatement.a(IfxPreparedStatement.java:298)
com.informix.jdbc.IfxPreparedStatement.(IfxPreparedStatement.java:168)
com.informix.jdbc.IfxSqliConnect.h(IfxSqliConnect.java:5918)
com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:1999)
br.com.IURD.jdbc.dao.LoginDAO.verifica(LoginDAO.java:57)
br.com.IURD.action.LoginAction.execute(LoginAction.java:30)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.sql.SQLException
com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:373)
com.informix.jdbc.IfxSqli.E(IfxSqli.java:3523)
com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)
com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)
com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1153)
com.informix.jdbc.IfxPreparedStatement.e(IfxPreparedStatement.java:318)
com.informix.jdbc.IfxPreparedStatement.a(IfxPreparedStatement.java:298)
com.informix.jdbc.IfxPreparedStatement.(IfxPreparedStatement.java:168)
com.informix.jdbc.IfxSqliConnect.h(IfxSqliConnect.java:5918)
com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:1999)
br.com.IURD.jdbc.dao.LoginDAO.verifica(LoginDAO.java:57)
br.com.IURD.action.LoginAction.execute(LoginAction.java:30)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Minha clase que faz o select
public List<Login> verifica(Login login) throws SQLException {
try{
String sql = "select nome, tipo from usuariosIURD where login =`"+ login.getNome()+ "` and senha = `"+login.getSenha()+"";
System.out.println(sql);
PreparedStatement stmt = connection.prepareStatement(sql);
//stmt.setString(1, login.getNome());
//stmt.setString(2, login.getSenha());
ResultSet rs = stmt.executeQuery();
List<Login> user = new ArrayList<Login>();
while (rs.next()) {
Login l = new Login();
l.setNome(rs.getString("nome"));
l.setTipo(rs.getString("tipo").charAt(0));
user.add(l);
}
rs.close();
stmt.close();
return user;
}catch (SQLException e) {
System.out.println(e);
}
return null;
}
Alguem pode me dar uma idéia do que pode estar acontecendo? Quando eu debugo ele para no
fiz um sysout pra testar o sql no banco e deu certo trazendo o registro direitinho
Obrigado pela ajuda