domingo, 15 de agosto de 2010

Java con Netbeans Parte 12: Base de datos II

java Con Netbeans Parte 10: Otras clases y metodos

Java con Netbeans Parte 9: Estructuras dinamicas: Pila, Lista, Cola

Java con Netbeans Parte 8: Arreglos con objetos

Java con Netbeans Parte 7: Arreglos y Matrices

Java con Netbeans Parte 6: Creacion de Métodos

Java con Netbeans Parte 5: Estructuras Repetitivas

Java con Netbeans Parte 4: Estructuras basicas (Secuenciales y Condicionales)

Java con Netbeans Parte 3: Libreria SWING

Java con Netbeans Parte 2: Libreria AWT

Java con Netbeans parte 1: Introduccion

Bienvenidos a este espacio donde aprenderemos un poco del lenguaje java de manera sencilla con el IDE Netbeans.
Qué es Java?
Sería fácil definir java sencillamente como un lenguaje de programación más, en realidad eso es. Java fue creado para satisfacer una necesidad de su época planteada por nuevos requerimientos hacia los lenguajes existentes.
Breve historia de su creación
 Antes de la aparición de Java existían otros lenguajes, entre los cuales se encontraba C (que hasta la actualidad se encuentra entre los preferidos). C es un lenguaje de alto nivel, pero proporcionaba un entorno casi parecido a programar en lenguaje ensamblador, peru cuando el código crecía, se hacía dificil de manejar.
Entonces,en los ochenta, apareció la Programacion Orientada a Objetos (POO u OPP en inglés).
Como su nombre indica, la POO permitía dividir el código en partes u objetos, así se podía analizar objeto por objeto por separado y se evitaba la complejidad. A partir de entonces afloraron muchos lenguajes de programación orientado a objetos y tambien se lanzaron versiones orientadas a objetos de los lenguajes ya existentes.
Asi, del lenguaje C, salio a la luz su version orientado a objetos: C++ (En programación "++" significa un incremento, eso ya se verá mas adelante). Eso quiere decir que, aparte de las bondades de un magnifico lenguaje C, agregaba soporte para POO. Asi, desde los 90, C++ paso a ser uno de los lenguajes mas populares (hasta la actualidad)
Algunas otras versiones lanzadas y que adquirieron popularidad fueron:
De Pascal a Turbo Pascal, y luego a Delphi
De Basic a QuickBasic y luego a Visual Basic
Posteriormente, en 1991, la empresa Sun Microsystems creó una herramientas de programación para un proyecto en una pequeña operación llamado Green Proyecto. Esta herramienta inicialmente se conocía como Oak, luego pasó a denominarse Green ("Oak" estaba registrado como una marca comercial") y finalmente se le denominó Java.
Pequeña curiosidad es que Java era un tipo de café de una cafetería cercana. De ahí que también el símbolo de java sea una taza de café caliente.
Actualmente Java se sigue desarrollando gracias a ORACLE, luego de que ésta empresa adquiera a Sun MicroSystems en el 2009 y se consolide como un gigante del Open Source.
 Características del lenguaje Java
 Entre las peculiaridades de este nuevo lenguaje se tiene:
  • Totalmente orientado a objetos
  • Es independiente de la plataforma. Uno de sus principales objetivos, java se precompila. Sólo necesita la máquina virtual de java (JVM o Java Virtual Machine)
  • Facilidad para crear aplicaciones para redes TCP/IP
  • No hay punteros, lo que proporciona seguridad
  • Es un lenguaje interpretado
  • Permite multihilos
  • Admite firmas digitales
Java y JavaScript
 Si bien estos nombres se parecen, no tienen nada que ver entre sí. En primer lugar Sun creo Java. Netscape creo JavaScript como un lenguaje exclusivo para la creaciñon de páginas web dinámicas. Originalmente se denominó LiveScript y cambiado a JavaScript por razones de markéting, lo cual funcionó de manera magna. Hoy en día es bastante popular.
Empezando en Java
JDK
Como ya se había mencionado, una de las características de Java es que se precompila. Para ésto se necesita los programas encargados de realizar el precompilado. El más conocido es el kit de desarrollador de Java, o en ingles Java Developer Kit (JDK), que se encuentra disponible en: http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html (Ultima versión que es la que usaremos)
IDE
Existen numerosos entornos de desarrollo integrados (Integrated Development Enviroment IDE) para Java, algunos de los cuales son:

  • Eclipse

  • Netbeans
  • JCreate
  • JavaDeveloper
  • JBuilder
Aquí se usara la plataforma Netbeans. Se puede descargar su ultima versión en:
Pueden instalar el paquete o plugin para pasarlo al español, o descargarlo directamente en español de:
Sintaxis del lenguaje Java
Comentarios
Es importante saber documentar nuestros programas para hacerlos mas accesibles a quien desee entender nuestro código, esto se logra mediante los comentarios. Los comentarios son lineas que no van a ser interpretadas por Java.
Comentario de una sola linea:
    // Esto es un comentario de una sola linea
 Comentario de varias lineas:
    /* Esto es un
    comentario de
    varias lineas */
Javadoc 
Javadoc es una herramienta del kit de desarrollo de Java para autogenerar documentación Java. Los comentario javadoc comienzan con el simbolo /** y terminan con */. Cada línea de texto se inicia con un *. Dentro de los comentarios generados se puede escribir cualquier texto. En javadoc existen etiquetas especiales, precedidas por el símbolo @. Pueden ser:
@author. Para indicar el autor del documento
@version. Para indicar el número de la versión de la aplicación
@see. Indica una referencia a otro código Java relacionado
@since. Indica desde cuándo esta disponible el código
@deprecated. Indica que esta clase o método están obsoletos
@throws. Indica las excepciones a las que lleva ese código
@param. Describe qué parámetros necesita ese codigo para su utilización
@return. Tras esa palabra se describe los valores que devuelve o retorna
Palabras reservadas
Palabras reservadas por el programa Java y que no deben ser utilizados como identificadores por el programador. Las palabras reservadas en java son:
 abstract     char  double  for int private super transient
 boolean class else goto interface protected switch try
 break const extends if long public synchronized void
 byte continue final implements nativ return this volatile
 case default finally import new short throw while
 catch do float instanceof package static throws                
Variables
Las variables o identificadores son los contenedores de los datos que utiliza un programa. Cada variable se declara para separar un espacio en la memoria RAM del ordenador y que almacenara un dato. El identificador es el nombre precisamente de la variable, por ejemplo:
    miVariable
    contador
    nombreVariable
    contador1
    contador_1
Ejemplos de variables incorrectas son:
        
        1variable           Empieza con dígito
        super                  Palabra reservada
        mi Variable       Espacio en blanco
Tipos de datos primitivos
Son los números enteros, reales, caracteres, valores lógicos, etc.


 Tipo de variable


 Bytes que ocupa


 Rango de valores 
 boolean 2 true,false
 byte 1 -128 a 127
 short 2      -32.768 a 32.767 
 int 4 -2.147.483 a 2.147.483.649
 long     8 -9.1018 a 9.1018
 double     8 -1,79 . 10 308 a 1,79 . 10 308
 float 4 -3,4 . 1038  a 3,4 . 10 38
 char         2 Caracteres
Declaración de variables
Antes de poder utilizar una variable, ésta se debe declarar de la siguiente forma
    tipo nombreVariable;
Donde tipo es el tipo de datos que almacenará la variable (texto, números enteros, valores lógicos...) y nombreVariable es el nombre con el que se conocerá . Ejemplo:
        int nota;
    boolean decision;
También se puede hacer que la variable tome un valor inicial al declarar:
      int dias=365;
Y también se puede declarar más de una variable a la vez:
        int dias=365, nota=20, edad=18;
Operadores
Para manipular los datos debemos utilizar operadores, asi podemos realizar operaciones básicas como suma y resta y también operaciones mas complejas.
Operadores aritméticos
Son:
 
 Operador Significado Ejemplo Resultado
 + Suma 8+5 13
 - Resta 8-5     3
 * Producto 8*5 40
 / División 8/5     1
 % Módulo o Residuo 8%5 3
 ++     Incremento en 1 i++ i+1
 - - Decremento en 1 i- - i - 1
 +=     Suma al contenido i+=2 i=i+2
 - = Resta al contenido i - =2 i = i - 2
 *= Multiplica al contenido j *= 3 j = j*3
 /= Divide al contenido k /= 4 k= k/4
Operadores condicionales
Son aquellos que sirven para comparar valores y siempre devuelven valores booleanos (true o false). Son:
 Operador Significado  Ejemplo  Resultado
 < Menor 2 < 3 false
 > Mayor 8 > 4 true
 <= Menor o igual 5<=5 true
 >= Mayor o igual 6>=5 false
 == Igual 2==2     true
 != Distinto 2!=2 false
 ! Negación !(3==3) false
 &&Y lógico (4==4) && (3<2) false
 ||O lógico (5<5) || (4==4)     true
Ámbito o alcance
Se refiere a la duración de una variable, por ejemplo en:
{
    int x=12;
}
System.out.println(x);
Java dará error, porque la variable se usa fuera del bloque establecido (la estructura dentro de las llaves).
Estructuras fundamentales de Java
Son estructuras de control del flujo que determinan que acciones se llevaran a cabo si se cumplen ciertas condiciones
Estructura condicional if
Permite crear estructuras condicionales simples, se usa cuando se desea evaluar una comparación y realizar acciones cuando la comparación sea verdadera.
Sintaxis:
    if (condicion){
        instrucciones que se ejecutan si la condicion es verdadera
    }
    else{

        instrucciones que se ejecutan si la condicion es falsa
    }
La parte else es opcional. Ejemplo:
    if (nota>=15){
       estado="aprobado";
    }
    else{
       estado="desaprobado";
    }
Se pueden anidar varios if a la vez de modo que se comprueben varios valores. Por ejemplo:
        if(diaSemana==1) dia="Lunes";  
        else if (diaSemana==2) dia="Martes";
        else if (diaSemana==3) dia="Miercoles";
        else if (diaSemana==4) dia="Jueves";
        else if (diaSemana==5) dia="Viernes";
        else if (diaSemana==6) dia="Sabado";
        else if (diaSemana==2) dia="Domingo";
Estructura de selección múltiple: switch
Permite evaluar distintos valores a la vez. Sintaxis
        switch(expresion){
            case valor1:
                acciones;
                [break];
            case valor2:
                acciones;
                [break];
                .
                .
                .                
            case valorN:
                acciones;
                [break];
            default:
                acciones si ninguna condicion de las anteriores se cumple;
        }
La expresión debe ser short, int, byte o char. Cada case contiene una condición que será evaluada, si esta es verdadera ejecuta las acciones designadas para el respectivo case; si el resultado es falso entonces salta al segundo case y evalúa nuevamente. La instrucción break se utiliza para salir del switch. El bloque default sirve para ejecutar instrucciones si, luego de evaluar cada case, ninguna condición fue verdadera. Un ejemplo sería:
        switch(diaSemana){                      dia="Fuera del rango";
            case 1:
                dia="Lunes";
                break;
            case 2:
                dia="Martes";
                break;               
            case 3:
                dia="Miercoles";
                break;
            case 4:
                dia="Jueves";
                break;
            case 5:
                dia="Viernes";
                break;
            case 6:
                dia="Sabado";
                break;
            case 7:
                dia="Domingo";
                break;   
            default:

        }

Otra manera de usar el switch es:
        switch(diaSemana){
            case 1:
            case 2:               
            case 3:
            case 4:
            case 5:
                dia="Laborable"
                     dia="Fuera del rango";
                break;
            case 6:
            case 7:
                dia="No Laborable";
                break;   
            default:

        }

Estructuras repetitivas:
while:
Permite crear bucles. Un buble es un conjunto de sentencias que se repiten si se cumple una condición dada. Las instruccion dentro de un while se ejecutan mientras la condición evaluada sea verdadera, si se evalúa falsa termina el bucle
La condición se evalúa antes de entrar al bucle y cada vez que se termina de ejecutar las instrucciones del while.
Sintaxis:
        while (condicion){
            Instrucciones que se ejecutan si la condicion es verdadera
        }
do while:
Crea un bucle parecido al while, en la que también las instrucciones se ejecutan hasta que la condición sea falsa. La diferencia es que la condición se evalúa despues de haber ejecutado las instrucciones dentro del bloque, por lo cual se ejecutará por lo menos 1 vez.
Sintaxis:
        do{
            Instrucciones que se ejecutan si la condicion es verdadera
        }while (condicion)
for:
Es un while simplificado mucho más rápido y eficaz.
        for (expresionInicial; condicion; variacion){
            Instrucciones
        }
Construir un método
Crear una aplicación con métodos sirve para organizar el código. Así, cada método se encarga de realizar tareas específicas. Luego de crear cada método, sólo debemos invocarlo para poder usarlo. En Java la sintaxis para declarar un método es:
        tipoDato nombreMetodo (lista de parametros)
El tipo de dato de un método (tipoDato) depende del resultado que devolverá. Así se creará metodos int, double, String, etc. Si el método no devuelve ningún resultado el tipo de dato debe ser void (vacío).
El nombre del método (nombreMetodo) debe empezar con minúsculas y si se compone de varias palabras es recomendable que a partir de la segunda empiezen con mayúscula.
La lista de parametros son variables, cada una con su respectivo tipo de dato que se enviarán al momento de invocar al método.

Ejemplo. Si se debe construir un método que lea el nombre de una persona se debe declarar de la siguiente manera:
    String leerNombre()
Para llamar a éste metodo:
    nombre = leerNombre();
y la estructura del método en Java:


                public String leerNombre(){
            return TextBox.getText();
        }
Arreglos y Matrices
Un arreglo, también llamado vector, es una colección de valores de un mismo tipo almacenados en la misma variable. Para acceder a cada uno de los valores se asigna a cada uno de ellos un número denominado índice, que normalmente empieza en 0.

Arreglos unidimensionales
Sintaxis:
    tipo nombre[];
Ejemplo: Un vector que almacenará diferentes edades:
    int edades[];
Luego de declarar el array, de ebe asignar espacio de la memoria, por ejemplo para edades, reservaremos espacio para 20 edades diferentes:
        
        int edades[];
        edades=new int[20]
        
También se pueden declarar arreglos ya iniciados, como en el siguiente ejemplo:
    String paises[] = {"Peru","Argentina","Brasil","Chile","Ecuador"};
        
Arreglos multidimensionales
Los arreglos pueden tener varias dimensiones
    int notas[][]; 
 Para asignar espacio en la memoria:
    notas=new int[3][12];      

sábado, 14 de agosto de 2010

Java Con Netbeans Parte 11 - Conexion a base de datos

BASE DE DATOS CON JAVA
OBJETIVOS
  • Conocer la tecnologia JDBC
  • Crear una conexion a una base de datos
  • Crear consultas basicas y avanzadas
Siempre es importante el acceso a base de datos en una aplicación. JDBC (Java DataBase Connectivity) es la tecnología Java que permite a las aplicaciones interactuar directamente con motores de base de datos. La API JDBC es una parte integral de la plataforma Java, por lo tanto no es necesario descargar ningún paquete adicional para usarla. Al instalar el JDK se instala automaticamente esta API.
JDBC permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice.
Considerando que nos encontramos en una plataforma de Windows y un gestor de base de datos SQL usaremos uno de los siguientes metodos para conectarnos a la base de datos:
  • Puente JDBC - ODBC
  • Controlador de Java parcialmente nativo
  • Controlador JDBC de Java puro
  • Controlador de protocolo de Java puro
Recomiendo usar el primer metodo, pues asi no estaremos esperando que nos proporcionen el controlador, es facil de usar y libre de costos
Ahora si entremos de lleno al tema...
PASOS IMPORTANTES PARA COMENZAR
Partiendo de que este tutorial es para aprender todo lo relacionado a la conexion de base de datos con java, presuponemos que ya esta lista la base de datos en algun gestor de base de datos tales como SQL Server, Access, MySQL, POSTGREE, ORACLE, etc. 3 Pasos importantes
  1. Crear el Data Source Name (DSN) mediante ODBC.
  2. Conectarse a la base de datos
  3. Desarrollar nuestro codigo de java para la aplicacion deseada
Creacion de un DSN con ODBC
Como se conecta ODBC a nuestra aplicacion?
Nuestra aplicacion >> JDBC >> ODBC >> Base de datos
Para crear nuestro SDN hacer lo siguiente:
  • Ir a panel de control >> Abrir Herramientas Administratitvas
  • Abrir Origenes de Datos ODBC donde visualizaran la siguiente imagen:
  • Clin en Agregar... para adicionar un nuevo DSN.
  • Escoger el controlador de SQL Server, luego Finalizar
  • En la siguiente ventana colocar el nombre del origen de datos, descripcion (opcional) y Servidor... En esta ocasion local pues el servidor esta siendo ejecutado de manera local.
  • Luego sigue la manera de autentificarse a su sistema de base de datos, eso queda a criterio.
  • En la siguiente ventana escoger la base de datos, usaremos para nuestros ejemplos la base de datos pubs, y Siguiente
  • Sin cambiar los parametros por defecto, Finalizar y se vera la siguiente ventana... Clic en Probar origen de datos...
  • Y vera la siguiente ventana, esto es solo para cersiorar si la conexion a base de datos fue hecha correctamente. Luego Aceptar > Aceptar
  • Finalmente Aceptar.
  • Y listo, creada nuestra conexion podemos proceder a... Programar nuestras aplicaciones...
Como primer ejemplo programaremos una pequeña aplicacion donde haremos un test a una conexion hecha en java a la base de datos Pubs de SQL
 
Empezemos...
 
Aplicación Nº 1
 
Para este ejemplo usaremos un JFrame llamado FrmTest, un JButton que servira para activar el test, y un JTextArea donde visualizaremos los mensajes de nuestra aplicacion.
Ahora entramos al codigo del JButton donde insertaremos el siguiente codigo:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection cn=DriverManager.getConnection("jdbc:odbc:dsnPubs");
            DatabaseMetaData meta=cn.getMetaData();
            txtMsg.setText("Conexion Realizada");
            txtMsg.append("\nGestor de base de datos : \t"+meta.getDatabaseProductName());
            txtMsg.append("\nVersion: \t\t"+meta.getDatabaseProductVersion());
        }
        catch(Exception ex){
            txtMsg.setText("La conexion no fue realizada");
        }
    }  
Y ahora solo ejecutamos nuestra aplicacion, y al hacer clik en el boton tendremos el siguiente resultado:

En el siguiente video pueden visualizar lo que hemos hecho hasta ahora para su mayor comprension:

CLASES BASICAS PARA JDBC
 
Connection Permite establecer la conexion a la base de datos. Clase fundamental en las aplicaciones que necesite acceder a una base de datos
Statement Almacena y ejecuta una instruccion SQL (T-SQL) tales como SELECT, INSERT, UPDATE y DELETE.
ResultSet Guarda los resultados de la sentencia SQL del Statement
ResultSetMetaData Guarda informacion META de los resultados. Ejemplo: Numero de columnas, Tipo de datos que guardan, cuantas filas, Nombres de Columnas, etc.
Aplicaremos estas clases en nuestra siguiente aplicación para ver en detalle como funcionan.
Aplicacion Nº 2
En esta aplicacion crearemos un formulario (JFrame) para realizar una consulta mediante un boton y que mostrará el resultado de la consulta en una area de texto. Elementos a utilizar:
JButton Nombre : btnConsulta Texto : Mostrar Consulta
JTextArea Nombre : txtMsg
 
Ahora entramos a programar el boton btnConsulta ya que este activara nuestro formulario:
private void btnConsultaActionPerformed(java.awt.event.ActionEvent evt) {                                            
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection cn= DriverManager.getConnection("jdbc:odbc:dsnPubs");
            Statement st=cn.createStatement();
            ResultSet rs=st.executeQuery("Select au_fname as Nombre, phone as Telefono, address as Direccion From authors");
            mostrarDatos(rs);
            cn.close();
        }
        catch (Exception ex){
            txtMsg.setText("Error en la conexion");
        }
    } 
Explicacion:
  • La variable cn declarada como connection almacena nuestra conexion a nuestra base de datos, especificamente dsnPubs.
  • La variable rs es un objeto de la c,lase ResultSet que almacena el resultado de nuestra consulta (query) que en este caso es "Select au_fname ...From authors"
  • Ahora para enviar los comandos a nuestra base de datos SQL necesitamos un Statement, que aqui es la variable st.
  • Luego de habernos conectado a la base de datos (Connection), crear una consulta (ResultSet) y ejecutarla (Statement), debemos mostrarla en nuestra area de texto (txtMsg), para ello hemos creado un metodo personalizado: mostrarDatos() al que le enviamos los resultados de nuestra consulta almacenados en la variable rs.
  • Luego de haber creado nuestro metodo mostrarDatos() Debemos programarlo de la siguiente manera:
private void mostrarDatos(ResultSet rs) throws Exception{
        ResultSetMetaData rmeta=rs.getMetaData();
        int nColumnas = rmeta.getColumnCount();
        txtMsg.setText("");
        for(int i=1;i<=nColumnas;i++)
            txtMsg.append(rmeta.getColumnName(i)+"\t");
        txtMsg.append("\n");
        while(rs.next()){
            for(int i=1;i<=nColumnas;i++)
                txtMsg.append(rs.getString(i)+"\t");
            txtMsg.append("\n");
        }
    }
Explicacion:
  • Al metodo mostrarDatos le enviamos el valor de rs, que en nuestra aplicacion almacenaba el resultado de nuestra consulta.
  • El uso de throws Exception se debe a que se encuentra dentro del bloque try ... catch, esto hara que cuando se produzca un error, salte del bloque try donde se encuentra a su respectivo catch.
  • Tambien, hemos utilizado la clase ResultSetMetaData pues necesitamos saber cuantos columnas vamos a usar para ordenar nuestros datos.
ResultSetMetaData
  • Con esta premisa, hemos declarado nColumnas para almacenar el numero de columnas que tiene nuestra consulta. Esto se obtiene a través de:
rs.getMetaData()
  • Sabiendo el numero de columnas, pasaremos a nombrar cada cabecera. Siendo una sola linea (Obviamente siempre solo tenemos una cabecera) usaremos:
for(int i=1;i<=nColumnas;i++)
            txtMsg.append(rmeta.getColumnName(i)+"\t");
txtMsg.append("\n");
  • Finalmente para introducir cada dato debajo de nuestra cabecera usaremos:
while(rs.next()){
            for(int i=1;i<=nColumnas;i++)
                txtMsg.append(rs.getString(i)+"\t");
            txtMsg.append("\n");
        }
La sentencia
while(rs.next()
 
evalua si cada fila tiene contenido (verdadero/true) y devolvera falso si esta vacia(falso/false)
Ojo que hablamos de cada fila entera, no solamente de una celda. No confundir.
  • Usamos un for para recorrer cada fila y rellenar nuestro txtMsg, para esto cada dato de la columna se debe convertir a String (por ser Area de Texto) con la sentencia
txtMsg.append(rs.getString(i)+"\t")
 
Y eso es todo, finalmente ejecuta tu aplicación. En este segundo video veremos todo lo aprendido en este segundo ejemplo.
 


A continuacion detallaremos mas metodos de los usados en este sencillo ejemplo

Tablas de métodos de clases básicas para JDBC 


Version del Java SKD: 1.6 (Ultima version)


Clase Connection

 void clearWarnings()
          Limpia todos los warnings reportados por el objeto Connection
 void close()
          Libera la base de datos de este objeto Connection y de los recursos consumidos por JDBC
 void commit()
          Ejecuta todos los cambios hechos desde el previo commit/rollback y libera a la base de datos de actuales bloqueos por este objeto Connection
 Statement createStatement()
          Crea un objeto Statement para enviar una sentencia SQL a la base de datos.
 Statement createStatement(int resultSetType, int resultSetConcurrency)
          Crea un objeto Statement que generará objetos ResultSet con el tipo de los parametros enviados y concurrencia
 Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
          Crea un objeto Statement que generará objetos ResultSet con el tipo de los parametros enviados, concurrencia y holdhability
 boolean getAutoCommit()
          Devuelve el modo actualo de AutoCommit del objeto Connection
 String getCatalog()
          Devuelve el nombre del actual catalogo del objeto Connection
 int getHoldability()
          Devuelve el actual holdability de los objetos ResultSet creados usando este objeto Connection.
 DatabaseMetaData getMetaData()
          Devuelve un objeto DatabaseMetaData  que contiene informacion meta de la base de datos con quien este objeto Connection representa una conexion.
 int getTransactionIsolation()
          Devuelve la transaccion actual del objeto Connection del nivel Isolation.
 Map getTypeMap()
         Devuelve el objeto Map  asociado con este objeto Connection .
 SQLWarning getWarnings()
          Devuelve el primer warning reportado por la ejecucion del objeto Connection.
 boolean isClosed()
          Devuelve verdadero si este objeto Connection ha sido cerrado.
 boolean isReadOnly()
          Devuelve verdadero si este objeto Connection se encuentra en modo lectura.
 String nativeSQL(String sql)
          Convierte la sentencia SQL a la gramatica SQL del sistema nativo.
 CallableStatement prepareCall(String sql)
          Crea un objeto CallableStatement para ejecutar procedimientos almacenados de la base de datos.
 CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
          Crea un objeto CallableStatement que generara objetos ResultSet con el tipo y la concurrencia dados.
 CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
          Crea un objeto CallableStatement  que generara objetos ResultSet con el tipo y la concurrencia dados.
 PreparedStatement prepareStatement(String sql)
          Crea un objeto PreparedStatement para enviar sentencias parametrizadas SQL a la base de datos.
 PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
          Crea un objeto PreparedStatement por defecto que tiene la capacidad de autogenerar keys.
 PreparedStatement prepareStatement(String sql, int[] columnIndexes)
          Crea un objeto PreparedStatement por defecto capaz de autogenerar keys designados por el actual array.
 PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
          Crea un objeto PreparedStatement que generara objetos ResultSet con el tipo y la concurrencia dados.
 PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
          Crea un objeto PreparedStatement que generara objetos ResultSet con el tipo, concurrencia y holdability dados.
 PreparedStatement prepareStatement(String sql, String[] columnNames)
          Crea un objeto PreparedStatement por defecto capaz de devolver keys autogeneradas designadas por el actual array
 void releaseSavepoint(Savepoint savepoint)
          Retira el objeto Savepoint dado de la transaccion actual.
 void rollback()
          Regresa todos los cambios hechos en la actual transaccion y librea cualquier base de datos bloqueda por el actual objeto Connection
 void rollback(Savepoint savepoint)
          Regresa todos los cambios hechos despues del objeto Savepoint dado fue establecido.
 void setAutoCommit(boolean autoCommit)
         Establece el modo auto-commit de la conexion al estado dado.
 void setCatalog(String catalog)
         Establece el nombre del catalogo dado en orden para seleccionar un subespacio de este objeto Connection de la base de datos en la cual se va a trabajar.
 void setHoldability(int holdability)
          Cambia el holdability de los objetos ResultSet creados using this Connection object to the given holdability.
 void setReadOnly(boolean readOnly)
          Establece esta conexion a modo de solo lectura como una sugerencia para el driver para permitir optimizacion de la base de datos.
 Savepoint
setSavepoint()
          Crea un savepoint sin nombre en la transaccion actual y devuelve el nuevo objeto Savepoint que representa
 Savepoint setSavepoint(String name)
          Crea un savepoint con el nombre dado en la transaccion actual y devuelve el nuevo objeto Savepoint que representa.
 void setTransactionIsolation(int level)
          Intenta cambiar el isolation level de la transaccion para este objeto Connection al dado.
 void setTypeMap(Map map)
          Instala el objeto TypeMap dado como el tipo de mapa para este objeto Connection.