Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/08/2012, 09:10
Avatar de leoMestizo
leoMestizo
 
Fecha de Ingreso: abril-2012
Mensajes: 12
Antigüedad: 12 años
Puntos: 1
Respuesta: Conexion sql server desde eclipse

Cita:
Iniciado por cindycpc3 Ver Mensaje
private final static String db = "jdbc:sqlserver://localhost:1433;databaseName=aplicaciones;";
Para serte sincero siempre he trabajado con MySQL como DBMS pero... Por qué en la URL del motor ponés el ";databaseName=aplicaciones;"?

Se supone que toda URL tiene la siguiente sintaxis:

"protocolo://host:puerto/recursos"

Siendo la parte de recursos tu base de datos.

Podrías hacer algo como esto (está en MySQL, solo cambiá el Driver...):

Código:
public class Conexion {

    private Connection connection = null;
    //Datos para la conexión
    private String user = "root"; //usuario de ejemplo
    private String password = "root"; //pass de ejemplo
    private String host = "localhost";
    private String port = "3306";
    private String bd = "miBD";
    //La URL de conexión con los respectivos parámetros
    private String urlConnection = "jdbc:mysql://" + host + ":" + port + "/" + bd + "";

    public Conexion() {
        try {
            //Registro el driver
            Class.forName("com.mysql.jdbc.Driver");
            //Hago la conexión
            connection = (Connection) DriverManager.getConnection(urlConnection, user, password);
        } catch (ClassNotFoundException e) {
            System.err.println(e.getMessage());
        } catch (SQLException e) {
            System.err.println(e.getMessage());
        }
    }
}
Espero que te sirva

Saludos,
Leonardo

PD: Podrías capturar el error del mensaje? Para simplificarnos el trabajo...

Poniendo algo como esto en el catch de la excepción que manejas:
Código:
System.err.println(e.getMessage());
Te doy por lo menos estos consejos desde mi humilde lugar:

Primero: Cuando se trate de una conexión, estaría buenísimo que te crees un objeto "experto" para esa conexión... (mirate patrones GRASP si te interesa)... Por qué? Porque de esta manera primero estás fomentando a la reutilización de código ya que cada vez que necesites conectarte a la BD lo harás desde el objeto que te presta dicho servicio y segundo es buena práctica de desarrollo. Imaginate que tu programa crezca tanto que tengas código copiado por veinte clases para conectarte y tengas que modificar los 20 archivos! Una locura total...
Segundo: En las excepciones cuando estás en la etapa de desarrollo te conviene mostrar el mensaje de error capturándolo con la excepción como te mostré arriba. De esta manera, corrés el archivo (en NetBeans, click derecho -> Run File o bien Mayús + F6) y si hay algún error te va a decir específicamente qué error es. Cuando ya vayas a implementar el Sistema poné un cartelito o lo que más te guste. Espero haber sido claro pero para que me termines de entender la idea te doy un ejemplo:

Supongamos que instalaste el DBMS y a la hora de configurarlo pusiste un password de admin que no es habitual que uses... Pasan meses y te decidís a trabajar con el motor. Cuando hacés la conexión, ponés la pass común que siempre usás y corrés la aplicación... Obviamente no te va a conectar porque no es el password con el que configuraste el motor. Al mostrarte el mensaje por "output" ves que te muestra el mensaje que configuraste lo cual no es útil ya que no sabés bien qué es lo que pasa. En su lugar si capturaras la excepción te diría qué es lo que sucede simplificándote el trabajo. En este caso te diría algo como:


Access denied for user 'root'@'localhost' (using password: YES)

De esta manera, sabrás que es porque el pasword utilizado no es el correcto.

Ves claro el ejemplo?

Ahora sí, espero haberte ayudado.

Última edición por leoMestizo; 14/08/2012 a las 09:36