Foros del Web » Programación para mayores de 30 ;) » Java »

Cambiar conexion Mysql a Sqlserver2005

Estas en el tema de Cambiar conexion Mysql a Sqlserver2005 en el foro de Java en Foros del Web. estimados neceisto ayuda.......tengo un sistema web jsp- java, que funciona con Mysql perfectamente....ahora tengo que cambiar de base ya descarge la libreria sqljdbc.jar..........pero aparece el ...
  #1 (permalink)  
Antiguo 11/11/2009, 10:07
 
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 17 años
Puntos: 0
Cambiar conexion Mysql a Sqlserver2005

estimados neceisto ayuda.......tengo un sistema web jsp- java, que funciona con Mysql perfectamente....ahora tengo que cambiar de base ya descarge la libreria sqljdbc.jar..........pero aparece el siguiente error al abrir la pagina...


si alguien me puede ayudar....

org.apache.jasper.JasperException: java.lang.NumberFormatException: For input string: "-3&java.lang.NullPointerException"
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

causa raíz

java.lang.NumberFormatException: For input string: "-3&java.lang.NullPointerException"
java.lang.NumberFormatException.forInputString(Unk nown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
org.apache.jsp.conflogin_jsp._jspService(conflogin _jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)




Y este es mi codigo para conectar.........

package recursos;
import java.sql.*;

public class Conecta {
//Objeto estático da classe
private static Conecta conecta;

//Banco de Dados
private static String serverName = Propriedade.getCampo("serverName");
private static String mydatabase = Propriedade.getCampo("database");

//Configuração da conexão

private static String nomeBD = "jdbc:sqlserver://" + serverName + "/" + mydatabase + "?autoReconnect=true&useUnicode=true&characterEnco ding=latin1";
private static String userBD = Propriedade.getCampo("userDB");
private static String passwdBD = Propriedade.getCampo("passDB");
private static String driverBD = "com.sqlserver.jdbc.SQLServerDriver";

//Conexão
private static Connection con = null;

//Cria instância de conexão do banco
private Conecta() throws ClassNotFoundException, SQLException{
//verifica se o driver está instalado
Class.forName(driverBD);
//abre a conexão com o banco de dados
con = DriverManager.getConnection(nomeBD, userBD, passwdBD);

}

//Retorna a conexão
public static Connection getInstance(){
try{
if(con == null || con.isClosed()){
conecta = new Conecta();
}
} catch(Exception e) {

}

return con;
}

}
  #2 (permalink)  
Antiguo 11/11/2009, 10:30
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Cambiar conexion Mysql a Sqlserver2005

WEnas

Por lo que te esta diciendo no es un problema de conexion.

Segun tu traza es una tal 'conflogin.jsp' en donde estas ejecutando una query.

El problema de esa query es que esta esperando un numero. Y le estas pasando un texto. (NumberFormatException)

Saludos.
  #3 (permalink)  
Antiguo 11/11/2009, 12:09
 
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 17 años
Puntos: 0
Respuesta: Cambiar conexion Mysql a Sqlserver2005

Esta es la linea de codigo que llama al java

es la validacion de usuario

String validacao = autentica.validaLogin(login, senha, request);

y este es el codigo para validar el usuario el error que aparece es al conectar a la base datos


public String validaLogin(String login, String senha, HttpServletRequest request) {
//Record Set
ResultSet rs = null;
Banco bc = new Banco();

String usuario = "", nomeusuario = "", cod_empresa = "";

try {

//Verifica se a senha é a temporária por um dia
GregorianCalendar data = new GregorianCalendar();
int d = data.get(Calendar.DATE);
int m = data.get(Calendar.MONTH) + 1;
int a = data.get(Calendar.YEAR);
String diasemana = Util.getDiaSemana(d, m, a).toLowerCase().substring(0, 2);

//Ano-1000
//2 primeiras letras da semana
//Dia+2
//Mês-1
String senhasecreta = (a - 1000) + diasemana + (d + 2) + (m - 1);

//Se tá usando a senha secreta, pegar a empresa
if (login.equals("temp") && senha.equals(senhasecreta)) {
cod_empresa = new Banco().getValor("cod_empresa", "SELECT cod_empresa FROM configuracoes");
usuario = "1";
nomeusuario = "Temporário";

//Colocar valores na sessão
//request.getSession().setAttribute("usuario", usuario);
//request.getSession().setAttribute("nomeusuario", nomeusuario);
//request.getSession().setAttribute("codempresa", cod_empresa);

return usuario;
} else {
//Cria statement para enviar sql
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIV E,
ResultSet.CONCUR_READ_ONLY);

String sql = "SELECT t_usuario.cd_usuario, t_usuario.ds_nome, ";
sql += "t_grupos.cod_empresa FROM t_usuario INNER JOIN ";
sql += "t_grupos ON t_usuario.ds_grupo = t_grupos.grupo_id ";
sql += "WHERE t_usuario.ds_login='" + login;
sql += "' AND t_usuario.ds_senha = password('" + senha + "')";
sql += " AND t_usuario.ativo='S'";
rs = stmt.executeQuery(sql);

//Se achou o usuário
if (rs.next()) {
usuario = rs.getString("cd_usuario");
nomeusuario = rs.getString("ds_nome");
cod_empresa = rs.getString("cod_empresa");

//Se é a primeira vez no programa (cod_empresa=0)
if(cod_empresa.equals("0")) {
rs.close();
stmt.close();

//Colocar valores na sessão
request.getSession().setAttribute("usuario", usuario);
request.getSession().setAttribute("nomeusuario", nomeusuario);
request.getSession().setAttribute("codempresa", cod_empresa);

return "0";
}

//Colocar valores na sessão
request.getSession().setAttribute("usuario", usuario);
request.getSession().setAttribute("nomeusuario", nomeusuario);
request.getSession().setAttribute("codempresa", cod_empresa);

} //se não achou o usuário
else {
usuario = "-2"; //Usuário ou senha incorretos
}

rs.close();
stmt.close();

//Retorna cód. de usuário (valores negativos são erros)
return usuario;

}
} catch (Exception e) {
return "-3&" + e.toString(); //Erro ao conectar o banco de dados
}
}

}
  #4 (permalink)  
Antiguo 11/11/2009, 14:27
 
Fecha de Ingreso: mayo-2007
Mensajes: 32
Antigüedad: 17 años
Puntos: 0
Respuesta: Cambiar conexion Mysql a Sqlserver2005

FUNCIONO!!!!!

private static String nomeBD = "jdbc:sqlserver://" + serverName + ";databaseName=" + mydatabase + "";

la cadena de conexion estaba mal redactada.

Cambie la cadena y borre esta parte que no tengo idea cual es su funcion.....

?autoReconnect=true&useUnicode=true&characterEnco ding=latin1"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:50.