Java + SQL Server 2005/2008

|

Dirijido a las personas que me habian preguntado como realizar la conexión entre una aplicación java y SQL Server usando el JDBC.

Los parametros y detalles de la conexion la encuenran en el sitio de microsoft aquí

Entonces el formato general de la URL de conexión es:


jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]


donde:

jdbc:sqlserver:// (obligatorio) es el subprotocolo y es constante.

serverName (opcional) es la dirección del servidor con el que se establece la conexión. Puede ser un DNS o una dirección IP o bien un host local o 127.0.0.1 para el equipo local. Si no se especifica en la URL de conexión, es necesario especificar el nombre del servidor en la colección de propiedades.

instanceName (opcional) es la instancia para establecer la conexión con serverName. Si no se especifica, se establece una conexión con la instancia predeterminada.

portNumber (opcional) es el puerto para establecer la conexión con serverName. El valor predeterminado es 1433. Si usa el valor predeterminado, no es necesario especificar el puerto ni el signo ":" precedente en la dirección URL.

Una vez que tengan definida su cadena de conexión, se puede crear la conexión a la BD, en mi caso me descargue el Microsoft SQL Server JDBC Driver 2.0 liberado en marzo de este año, pero bueno un ejemplo:


//carga del Driver
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Se establece la conexion con el servidor de BD
dbConnection = DriverManager.getConnection("jdbc:sqlserver://192.168.0.123:1433;databaseName=BD_Check;",
"User1", "12345");
//Se crea el objeto statement
Statement stm = dbConnection.createStatement();
private PreparedStatement enrollStmt;
enrollStmt = dbConnection.prepareStatement("SELECT * FROM enroll");
enrollStmt.executeQuery()
//Posteriormente se cierra la conexión
if(!enrollStmt.isClosed())
enrollStmt.close();
if(!dbConnection.isClosed())
dbConnection.close();


Recomiendo lean la API java.sql para mas detalles.

NOTA:Los chicos de microsoft constantemente mueven las paginas del servidor, por lo que en algún momento el link podría estar roto.

3 comentarios:

Gabo dijo...

Solo comentar que existen otros Driver's JDBC para SQL Server, por ejemplo:
* JTDS el cual es un driver de generación 4 para MSSQL Server(6.5,7,2000 y 2005) el cual es GPL [http://jtds.sourceforge.net/]
* Inet JDBC este es de tipo comercial, es un driver generación 4
[http://www.inetsoftware.de/products/jdbc-driver]

Maria Paz Ibar S dijo...

import java.sql.*;
public class abrirConexion
{

//Conectandose a SqlServer Usando JDBC y ODBC

public static void main(String[] args)
{

/**********************************
* *
* Usando una Conección tipo ODBC *
* *
**********************************/

// //Se entiende que usamos el Protocolo ODBC, que usaremos una ves que allamos agregado
// //en la Directiva de ODBC de Windows la conección correspondiendo a la base de datos.
// String url = "jdbc:odbc:Ejemplo";
// String usuario = "NeoBones";
// String password = "";
// Statement stmt = null;
// //Carga del driver
// try {
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// }
// catch(java.lang.ClassNotFoundException ex) {
// System.err.print("Problemas al cargar el driver");
// System.err.println(ex.getMessage());
// }
// try {
// //Creando la conexion a la BD
// Connection conexion = DriverManager.getConnection(url, usuario, password);
// //Lanzando consultas
// stmt = conexion.createStatement();
// ResultSet cursor = stmt.executeQuery("SELECT * FROM persona");
// }
// catch(SQLException exc) {
// System.err.println(exc.getMessage());
// }

/**********************************
* *
* Usando una Conección Tipo JDBC *
* *
**********************************/

// La diferencia, es que cambiamos el Protocolo, en ves de ser ODBC es SqlServer. y agregamos
//el nombre del Servidor de nuestra maquina, en mi caso es asi.
String url = "jdbc:sqlserver://NEOBONES-NOTE\\SQLEXPRESS:1433;DatabaseName=Ejemplo;integratedSecurity=true;";
//Si usaremos una conexion de tipo validacion llenar los compos y sacar el integratedSecurity del URL
//String usuario = "NeoBones";
//String password = "";
Statement stmt = null;
//Carga del driver
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException ex) {
System.err.print("Problemas al cargar el driver ");
System.err.println(ex.getMessage());
}
try {
//Creando la conexion a la BD
Connection conexion = DriverManager.getConnection(url); // Conexion con validacion: getConnection(url,usuario,password);
//Lanzando consultas
stmt = conexion.createStatement();
ResultSet cursor = stmt.executeQuery("SELECT * FROM persona");
}
catch(SQLException exc) {
System.err.println(exc.getMessage());
}
}
}

Aporte: NeoBones

Luis dijo...

http://www.youtube.com/watch?v=B_ACoD5uCNU