Software Guru Conference & Expo 2014

Problema conexion java sql server

Hola a todos

Estoy implementado un programa que va a acceder a una base de datos de sql server, tengo el driver sqljdbc.jar y tengo este .jar guardado en la carpeta lib del proyecto creado en netbeans, utilizo el siguiente codigo para establer conexion con la base de datos

try {
Class.forName("com.microsoft.jdbc.sqlserver.sqlServerDriver");
conexion = DriverManager.getConnection(url, usuario, contraseña);
sentencia = conexion.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
} catch (SQLException ex) {

} catch (ClassNotFoundException ex) {
}
}

el problema es que no me conecta y me aparece un error del tipo ClassNotFoundException, eh agregado la libreria al proyecto, la eh descomprimido pero de ninguna forma me da. Alguien que me colabore con esto gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

typo

Los nombres de clases normalmente comienzan con mayúsculas. No sé si el driver de SQL Server sea SQLServerDriver o SqlServerDriver pero podría apostar que no es sqlServerDriver.

De paso te recomiendo el jTDS, un driver de software libre para SQL Server, que funciona mejor que el de Microsoft:

http://jtds.sourceforge.net/

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

conexion bd

Gracias por tu ayuda,
Ahora tengo otro problema, ya me reconoce el driver pero no me da acceso a la base de datos, me sale el siguiente error,

La conexión TCP/IP al host ha fallado. java.net.ConnectException: Connection refused: connect

utilizando el siguiente codigo

Connection conexion = null;
Statement sentencia = null;
ResultSet resultado = null;
boolean hayDatos = false;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("dd");
conexion = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=InmobiliariaGomezyAsociados", "", "");
sentencia = (Statement) conexion.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
} catch (SQLException ex) {
System.out.println(ex.getMessage()+"d");
} catch (ClassNotFoundException ex) {
System.out.println(ex.getMessage());
}

Imagen de ezamudio

server corriendo?

Estas seguro que SQL server esta corriendo en la maquina donde corres este programa? Las conexiones de JDBC son por sockets de TCP/IP y por lo visto no se puede crear una conexión. No es problema de usuario y password porque te diría que fue error de autenticación; ese error es de que no se pudo establecer la conexión al puerto 1433 de localhost. Intenta con un telnet, y tampoco vas a poder:

telnet localhost 1433

Tal vez sea la configuración en SQL Server o no está corriendo el servicio actualmente y lo tienes que levantar primero; no me suena a que sea problema de firewall porque por lo general cuando un firewall bloquea acceso a un puerto, simplemente se queda trabado el intento de conexión hasta que se da un timeout. Si el error te sale de inmediato (que es lo más probable) entonces lo más seguro es que no está corriendo SQL Server o no está configurado para recibir conexiones remotas por TCP/IP y solamente recibe conexiones locales. Para poder conectarte a SQL Server por JDBC (o a cualquier otro servidor de base de datos por JDBC) debe aceptar conexiones por TCP, aunque sean desde el mismo equipo (a veces la configuración default solamente acepta conexiones por sockets locales, por ejemplo PostgreSQL por default no escucha en un puerto TCP, solamente recibe conexiones por sockets de UNIX, algo similar podría ser el caso de SQL Server).

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

algo asi

larga vida jvm

mira estaba trabajando en una pagina web dinamica con servlets y uso un puente jdbc
como ya lo hisiste agrago el driver de mysql lo que veo que tu colocas ; despues del servidor y yo /
cejo e mi base..
espero te sirva....

Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/cejo", "root", "root");

CONEXCION A UNA BASE DE DATO REMOTA

BUENAS NOCHES:
El codigo que me pasaron muy amablemente me funciono muy bien el problema es que cuando intento entrar a una base de dato sql que esta en un pc servidor Las conexiones de JDBC son por sockets de TCP/IP en conclusion en mi localhost si me funciona el codigo el problema son las base de datos que son remotas como hago para que mi codigo java se conecte a una base de dato que no esta mi pc ya e intentado colocar la ip del servidor y otra cantidad de cosa pero no he logrado conseguir la solucion

le agradesco su pronta respuesta

atentamente

juan carlos

Imagen de ezamudio

IP y puerto

IP y puerto es lo único que necesitas cambiar (bueno y probablemente usuario y password si es que la base de datos que corres en tu propio equipo no tiene los mismos usuarios que la del servidor remoto).

Dentro de una red local no debes tener problema, y si lo tienes, debes hablar con el administrador de esa base de datos para ver por qué no te puedes conectar, tal vez alguna regla que pusieron en el servidor para rechazar conexiones de ciertas subredes internas, o por seguridad cambiaron el puerto default y por eso no puedes conectarte. Esto es algo que tienes que ver con el administrador de base de datos.

PROBLEMA DE CONEXION DE SQL CON JAVA

BUENO LO CURIOSO NO ES ESO LO CURIOSO ES QUE HAY OTRO SOFTWARE QUE SE CONECTA A LA RED POR MEDIO DE SQL SERVER, SI FUERA PROBLEMA DE LA RED EL TAMPO SE PUEDIERA CONECTAR.

LE PREGUNTO MUY FORMALMENTE DEBE EXISTIR UNA CONEXCION PREBIA PARA LA CONEXION SQL SERVER NO SE ALGUNA PARAMETRIZACION DEL MOTOR O DEL ADMINISTRADOR

ATENTAMENTE

Problema de Conexion de SQL con JAVA

Hola afelipe:

Quiero hacer un comentario a tu pregunta, espero te sirva aunque sea ya meses despues...

Pienso que el error de conexion va mas orientado a problemas de actualizacion del lado del servidor SLQ Server, no se cual es tu version especifica,
pero imagino que sera SQL 2000, SQL 2005, o superior, la posible solucion seria actualizar el driver de JDBC que tienes instalado; debes buscar en Microsoft
la ultima version que funciona para SQL 2000, 2005, etc., Por otra parte asegurate con tu DBA de SQL, tambien tenga el ultimo service pack para la base de datos.
A mi se presento el mismo problema, mandaba los mismo errores y no entendia que iba mal con el codigo no podia conectar ni a SQL 2000, ni SQL 2005,
actualice mi driver JDBC, y pude conectar a SQL 2005, pero no al 2000, entonces baje el ultimo service pack (Version 4) para la base SQL 2000, y se resolvio
el problema. Originalmente las versiones previas de JDBC presentaron problemas con la conexion desde Java, por lo debes actualizar al ultimo driver disponible en el
site de Microsoft, despues de que asegures esta actualizacion, puedes rastrear el origen de cualquier otro error en tu red o tu codigo.
Saludos.
Berny......... Espero aun te sirva... =)
no recuerdo

Problema de Conexion de SQL con JAVA

Quiza la solucion a bajo te pueda servir, saludos.