- Abrir SqlServer para conexión por tcp/ip
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
- Conseguir el jar adecuado.
página de Microsoft sobre el tema
Para la Java 1.7 corresponde el sqljdbc41.jar que habría que bajar de Internet
- La cadena de conexión
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) {}
}
}
}