CONEXI?“N DE JAVA CON SQL SERVER
Para realizar una conexión contra SQL Server 2005, es necesario descargar y usar el driver que para este cometido ha desarrollado Microsoft (Controlador JDBC de Microsoft SQL Server 2005).
El controlador JDBC no forma parte del SDK de Java. Por consiguiente, debemos establecer la ruta de clase para que incluya el archivo sqljdbc.jar si deseamos usarlo. Si en la ruta de clase falta una entrada para sqljdbc.jar, la aplicación genera la excepción común «Clase no encontrada».
El archivo sqljdbc.jar se instala en la siguiente ubicación:
<directorio de instalación>\sqljdbc_<version>\<language>\sqljdbc.jar
El siguiente es un ejemplo de la instrucción CLASSPATH usada para una aplicación de Windows:
CLASSPATH =.;C:\Program Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.1\enu\sqljdbc.jar
El siguiente es un ejemplo de la instrucción CLASSPATH usada para una aplicación de Unix/Linux:
CLASSPATH =.:/home/usr1/mssqlserver2005jdbc/Driver/sqljdbc_1.1/enu/sqljdbc.jar
Nota: En los sistemas de Windows, los nombres de directorio mayores que 8,3 o los nombres de carpetas con espacios pueden causar problemas con las rutas de clase. Si vemos que se da este tipo de problema, debemos mover temporalmente el archivo sqljdbc.jar a un nombre de directorio sencillo como C:\Temp, cambiar la ruta de clase y determinar si de este modo se corrige el problema.
java -classpath .
Aplicaciones que se ejecutan en un IDE
Servlets y JSP
Enterprise Java Beans
<applet ... archive=sqljdbc.jar>).
Establecer una conexión sencilla con una base de datos
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Una vez cargado el controlador, puede establecer una conexión con una URL de conexión:
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;user=MyUserName;password=*****;";
Connection con = DriverManager.getConnection(connectionUrl);
Si conectamos contra un servidor SQL Express, seguramente tengamos que añadir el nombre de la instancia:
String url = «jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;databaseName=nombrebd;user=usuario;password=********;»;
CLASES JDBC DE ACCESO B??SICO A BASES DE DATOS
Las clases fundamentales de JDBC son, Statement y ResultSet. La clase java.sql.Statement es la más básica de las tres que representan sentencias SQL. El método executeQuery() toma una cadena SQL como argumento y devuelve un objeto ResultSet. Por otro lado, las sentencias de actualización se ejecutan con el método executeUpdate() el cual además devuelve el número de filas afectadas.
La clase Statement proporciona un método execute() para operaciones en las que no se sepa si el código SQL es una consulta o una actualización. Esto suele pasar cuando la aplicación está ejecutando sentencias SQL creadas dinámicamente. Si la sentencia devuelve una fila de la base de datos, el método devuelve true, y false en caso contrario. La aplicación puede entonces usar el método getResultSet() para obtener la fila devuelta.
java.sql.Resultset es un conjunto de filas de datos que devuelve una consulta. La clase proporciona simplemente una serie de métodos para recuperar columnas de los resultados de una consulta. Los métodos para obtener una columna tienen la siguiente sintaxis:
type get type(int | String)
El argumento representa el número o el nombre de la columna deseada. Un curioso efecto colateral de este diseño es que se pueden almacenar valores de un tipo en la base de datos y recuperarlos en otro tipo de valor distinto. Por ejemplo, si necesitamos que un dato Date (fecha) de la base de datos aparezca como cadena (String) podemos llamar a result_set.getString(1) en vez de a result_set.getDate(1).
Como la clase ResultSet sólo maneja una fila de la base de datos cada vez, la clase proporciona el método next() para invocar a la siguiente fila. Si devuelve true, tiene otra fila que procesar, y cualquier llamada subsiguiente que realizara al objeto ResultSet hará referencia a la siguiente fila. Si no quedan más filas, devolverá false.
* Extraído de la documentación de la clase JDBC de acceso a SQL Server de Microsoft y del libro Programación de bases de datos con JDBC y Java de George Reese