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

Conexion sql server desde eclipse

Estas en el tema de Conexion sql server desde eclipse en el foro de Java en Foros del Web. Buenos Dias estimados colegas, mi pregunta es la siguiente: Intento conectar una base de datos sql server 2005 desde eclipse lenguaje java, hasta los momentos ...
  #1 (permalink)  
Antiguo 13/08/2012, 07:22
 
Fecha de Ingreso: abril-2012
Ubicación: Caracas
Mensajes: 22
Antigüedad: 12 años
Puntos: 1
Conexion sql server desde eclipse

Buenos Dias estimados colegas, mi pregunta es la siguiente:
Intento conectar una base de datos sql server 2005 desde eclipse lenguaje java, hasta los momentos e conseguido ejemplos pero para conectar con mysql, tengo este codigo pero obvio no me conecta, por favor alguien que pueda darme una induccion de que debo cambiar para lograr la conexion.

me descargue el driver jar para conectar

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class BasesdeDatos {

/*Class.forName(“com.microsoft.sqlserver.jdbc.SQLSe rverDriver”); // 2005 version
Connection con = DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;

databaseName=p1;user=a;password=123456;”);

con.close();//se cierra la conexion con la base de datos*/



private final static String drv = "com.microsoft.sqlserver.jdbc.driver";
private final static String db = "jdbc:sqlserver://localhost:1433;databaseName=aplicaciones;";
private final static String UserAndPass = "profit";
//databaseName= aplicaciones
private Connection ct;
private Statement st;



public BasesdeDatos (){
try {
Class.forName(drv);
ct = DriverManager.getConnection(db, UserAndPass, UserAndPass);
st = ct.createStatement();

System.out.println("Conexion exitosa");
}
catch (Exception e){
System.out.println("No se pudo conectar a la base de datos");
}
}
public void showAll(){
try {
ResultSet rs = st.executeQuery("select * from Table_1");
while (rs.next()){
System.out.println(rs.getString(1)+"|"+rs.getStrin g(2));
}

}
catch (Exception e){
System.out.println("Error al realizar la consulta");
}

}
}

GRACIAS DE ANTE MANO
  #2 (permalink)  
Antiguo 14/08/2012, 09:10
Avatar de 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

Etiquetas: conexion, eclipse, jar, mysql, server, sql, string, aplicaciones
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 01:40.