20/4/16

Conectar Java con SqlServer.

  1. Abrir SqlServer para conexión por tcp/ip
  2. Para SqlServer 2008 sería:

    Ejecutar: Microsoft SQL Server 2008>Herramientas de configuración>Administración de Configuración de SQL Server

    Desplegar "Configuración de red de SQL Server", "Protocolos de " [Nombre instancia], y en TCP/IP dejar como habilitado

  3. Conseguir el jar adecuado.
  4. página de Microsoft sobre el tema

    Para la Java 1.7 corresponde el sqljdbc41.jar que habría que bajar de Internet

  5. La cadena de conexión
  6. Aquí está la madre del cordero.

    En mi caso "jdbc:sqlserver:" es siempre fijo.

    //nombre servidor:numero de puerto

    instanceName=nombre de instancia(si hay varias en el mismo equipo es fundamental ponerla)

    si se trabaja con autenticación de sqlServer (no Directorio Activo), user y password

    En resumen:

    "jdbc:sqlserver://localhost:1433;instanceName=SQLEXPRESS2008;databaseName=nombreBD;user=sa;password=secreta";

Con esto funciono.

Añado código de ejemplo:(Sacado de uno de los ejemplos de Microsoft que vienen junto al .jar para conectarse)


import java.sql.*;


public class CrudSqlServer1 {

 public static void main(String[] args) {
  // Create a variable for the connection string.
  String connectionUrl = "jdbc:sqlserver://localhost:1433;instanceName=SQLEXPRESS2008;databaseName=nombreBD;user=sa;password=secreta";

  // Declare the JDBC objects.
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  
         try {
          // Establish the connection.
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
              con = DriverManager.getConnection(connectionUrl);
            
              // Create and execute an SQL statement that returns some data.
              String SQL = "SELECT * FROM Tabla1";
              stmt = con.createStatement();
              rs = stmt.executeQuery(SQL);
            
              // Iterate through the data in the result set and display it.
              while (rs.next()) {
               System.out.println(rs.getString(4) + " " + rs.getString(6));
              }
              System.out.println("FIN");
         }
        
  // Handle any errors that may have occurred.
  catch (Exception e) {
   e.printStackTrace();
  }

  finally {
   if (rs != null) try { rs.close(); } catch(Exception e) {}
       if (stmt != null) try { stmt.close(); } catch(Exception e) {}
       if (con != null) try { con.close(); } catch(Exception e) {}
  }

 }

}