saltar al contenido

Cómo crear una base de datos usando JDBC

jdbc-palabrasAprenda JDBC y cree una aplicación de base de datos JDBC "Hello World". Este tutorial de JDBC se puede utilizar para cualquier producto que tenga controladores JDBC, incluidos MySQL, Oracle y RDM de Raima.

Antes de que empieces

Hay algunas cosas que debe asegurarse de comprender / obtener antes de comenzar. Eche un vistazo a continuación:

  • Iniciar un símbolo del sistema en Windows o Linux.
  • JDK 1.6 o mayor instalado y listo para funcionar.
  • Determine si el JDK de su sistema es de 32 o 64 bits. Para hacer esto, ejecute "java-version" en un símbolo del sistema. Si es de 64 bits, lo dirá en la salida. De lo contrario, es de 32 bits.
  • Un editor de texto.
  • Un controlador de base de datos JDBC contenido en productos como MySQL, PostgreSQL o RDM.

Pasos para crear su aplicación

Se puede encontrar una muestra preempaquetada que utiliza el controlador JDBC de Raima y el sistema de administración de base de datos RDM en el población sección. Seleccione el paquete de Windows o Linux "Hello World" que coincida con su sistema operativo y JDK (32 o 64 bits). Puede seleccionar las otras muestras después de terminar este tutorial, ya que muestran usos cada vez más complejos de bases de datos a través de JDBC.

Instale el paquete en un nuevo directorio local. Como referencia, llamaremos a este directorio “/ HelloWorld_JDBC”. Se puede ver el código fuente completo de HelloWorldJDBC.java aquí.

Paso 1 Abra un indicador de línea de comando

Cambie al directorio en el que instaló los archivos de la muestra.

Paso 2 Visualización su archivo .java

Usando su editor de texto, vea el archivo "HelloWorldJDBC.java". Alternativamente, use nuestro copia en línea.

Paso 3 Visualización tu clase de muestra

Su clase debe contener el mismo nombre que el archivo .java que contiene la clase. Debería aparecer de la siguiente manera:

public class HelloWorldJDBC {

}

Esta clase es una público class porque tiene la capacidad de acceder fuera del alcance de esta clase. En este ejemplo, todo se hace dentro de esta clase.

Paso 4 Examinar el método principal

El método principal es el punto de entrada a su programa. Para este ejemplo simple, solo estamos usando un archivo .java. Por lo tanto, la clase contendrá el método principal como se muestra a continuación. Para este ejemplo, lanzaremos el más externo SQLException (La excepción relacionada con el objeto Connection) por simplicidad.
public static void main(String[] args) throws SQLException {

}

Paso 5 Creación e inicialización de su objeto de conexión

Inicializarás tu Conexión objeto antes de tener acceso a cualquiera de los métodos que contiene. Recuperará el objeto de conexión llamando a un método desde el DriverManager clase llamada getConnection (). El retorno de este método es su objeto Connection.

Es una buena práctica comenzar una nueva intentar bloque para cada objeto que inicialice. Cuando haya terminado con el objeto, simplemente agregue un finalmente bloque que realiza el correspondiente cerca() método, y el bloque más externo contendrá su captura bloquear para manejar todo lo posible SQLExceptions. Esto será más fácil de ver con el código completo.

*Nota: La URL cambiará según el controlador que esté utilizando, en este caso, se está utilizando el controlador RDM JDBC.
Connection Conn = DriverManager.getConnection(“jdbc:raima:rdm://local”);
try {

}
} catch (SQLException exception) {

} finally {
Conn.close();
}

Paso 6 Creación de su objeto de declaración

El recién creado Conexión objeto Conn tiene un método llamado createStatement () que devolverá un Declaración objeto. Luego lo usará con esta conexión a la base de datos.
Statement Stmt = Conn.createStatement();
try {

} finally {
Stmt.close();
}

Paso 7 Ejecutar declaraciones para crear o abrir la base de datos

Utilizando la Declaración objeto Stmt que acaba de crear, puede ejecutar varios métodos diferentes según el tipo de declaración que desee ejecutar. Por ejemplo, si desea ejecutar una instrucción SQL como "ABRIR nombre_base_datos" o "DELETE * FROM table_name" realizarías un Statement.execute () método. Puedes ver ejecutar() utilizado en el fragmento de código a continuación. En este ejemplo, crearemos la base de datos mediante programación. En este ejemplo, la base de datos es trivial y consta de una única tabla denominada hello_table que contiene una columna de un solo carácter llamada foo. La secuencia creará una base de datos si aún no existe, o simplemente la abrirá si existe.

*Nota: Esta base de datos se crea mediante programación. Existen herramientas para crear su base de datos por separado de su programa. Ver un rápido "Cómo crear una base de datos con SQL" tutorial sobre cómo hacer esto.

try {
Stmt.execute(“CREATE DATABASE hello_db”);
Stmt.execute(“CREATE TABLE hello_table (f00 char(31))”);
Conn.commit(); // now the database physically exists
} catch (SQLException exception) {
// we are here if database exists
Stmt.execute(“OPEN DATABASE hello_db”);
}

Paso 8 Insertar una nueva fila usando el objeto de declaración

Para insertar una sola fila en esta base de datos, usamos el método executeUpdate (), que se usa para declaraciones INSERT, UPDATE o DELETE completas (no preparadas). Esto implícitamente inicia una transacción, que será una unidad de trabajo de actualización aplicada a la base de datos de forma atómica. A continuación se muestra un INSERT, pero se podrían agregar más en este punto.

Stmt.executeUpdate ("INSERT INTO hello_table VALUES (" Hola mundo ")");

Paso 9 Confirmación de cambios

Para que sus cambios finalicen en la base de datos, debe realizar una confirmación de transacción. En JDBC esto se hace a través de un método en el Conexión objeto. El método que usaremos es Connection.commit () y eso finalizará cualquier cambio que haya realizado durante una transacción.

Conn.commit(); //Commits all changes

Paso 10 Crear su objeto de conjunto de resultados (recuperar datos de la base de datos)

En JDBC, cuando desea recuperar datos de la base de datos, realiza una instrucción SQL SELECT utilizando su Declaración objeto con un método de ejecución que devuelve un Objeto de conjunto de resultados. Este método se llama Statement.executeQuery (). Esto significa que ejecutará la consulta especificada y devolverá los resultados de la consulta en el conjunto de resultados dado.

ResultSet RS = Stmt.executeQuery(“SELECT * FROM hello_table”);
try {

} finally {
RS.close();
}

Paso 11 Acceder al conjunto de resultados

Para acceder a todos los datos de su Conjunto resultante, debe recorrerlo en iteración. Se proporciona un método dentro del Conjunto resultante para comprobar si el siguiente resultado en el Conjunto resultante es NULO, lo que significa que no hay más datos. Si el método ResultSet.next () devoluciones CIERTO luego hay datos en la base de datos y puede recuperarlos de su conjunto de resultados.

Para acceder a los datos dentro del conjunto de resultados, debe realizar una adquiridor método. Existen numerosos métodos de obtención disponibles para recuperar el tipo de datos específico del conjunto de resultados. En este ejemplo queremos una cadena, por lo tanto, usamos el método ResultSet.getString (), siendo el parámetro la columna (la primera / única columna es 1) de la que está recuperando.

Eche un vistazo al código a continuación para ver un ejemplo de cómo se puede hacer esto.
while(RS.next() != false)
{
System.out.println(RS.getString(1));
}

Este bucle recuperará todas las filas del conjunto de resultados. Cuando este programa de muestra se ejecuta por primera vez, solo habrá una fila. Si lo ejecuta varias veces, encontrará una fila por cada vez que se haya ejecutado.

Paso 12 Desasignación de recursos

Aquí desasignará todos los recursos que utilizó anteriormente. En este caso, sus recursos son cada objeto que utilizó anteriormente, siendo su Conexión objeto, Declaración, y Conjunto resultante objetos. Para cada anidado intentar bloque tendrás un finalmente bloque, que realiza el correspondiente cerca método. Estas declaraciones se han mostrado en el contexto anterior, pero aquí están las llamadas de limpieza en secuencia desde el código.
} finally {
RS.close ();
}
} finally {
Stmt.close ();
}
} catch (SQLException exception) {
System.err.println (“SQLException : ” + exception.toString ());
} finally {
Conn.close ();
}

Paso 13 Captura final y finalmente bloque

El último bloque contiene tanto un captura bloque y un finalmente cuadra. La captura block determina qué hacer si se lanza una excepción en el código anterior. En este caso, basta con mostrar la excepción a la salida estándar. La finalmente El bloque se ejecutará independientemente de que se lance una excepción. Aquí desasignaremos nuestro Conexión objeto. En este ejemplo, si su Conexión El objeto arroja una excepción por alguna razón, se "arroja" fuera del método. En una situación normal, puede agregar otro trata de atraparlo bloquear, o declarar este programa como un método separado y manejarlo en otro lugar.

} catch (SQLException exception) {
System.err.println(“SQLException : ” + exception.toString());
} finally {
Conn.close();
}

Paso 14 Compilando su aplicación

Si tu JDK está instalado correctamente, debe tener acceso al compilador de Java, llamado javac. Para que su programa se compile correctamente, primero debe configurar su CLASSPATH para contener todos sus archivos de clase, incluidos los archivos .jar que está utilizando. Dado que el controlador JDBC suele ser un archivo .jar, deberá incluirlo en su CLASSPATH. Si está utilizando la línea de comando, realizará operaciones similares a esta:

Linux: CLASSPATH = $CLASSPATH; {Directorio de trabajo actual}; {Ruta directa al archivo .jar}

CLASSPATH = $CLASSPATH; / inicio / usuarios / kevin / espacio de trabajo /; / inicio / usuarios / kevin / espacio de trabajo / rdmjdbcJDK8-14.jar

*Nota: ./ se puede utilizar para indicar el directorio de trabajo actual

Windows: establezca CLASSPATH = %CLASSPATH%: {Directorio de trabajo actual}: {Ruta directa al archivo .jar}

set CLASSPATH = %CLASSPATH%: C: userskevinworkspace: C: userskevinworkspacerdmjdbcJDK8-14.jar

Una vez que haya configurado su CLASSPATH debería estar listo para compilar. Para hacer esto, debe utilizar el javac compilador. La compilación será la misma en todas las plataformas. El formato tiene este aspecto:
javac {main_class.java (punto de entrada al programa)}

En este caso, escribiría:

javac HelloWorldJDBC.java

No debería ver advertencias y, una vez completado, se habrá generado un archivo .class. Su directorio debe contener:

HelloWorldJDBC.java
HelloWorldJDBC.class

Paso 15 Ejecutando el programa

Ejecutar el programa es tan simple como escribir "java {nombre del ejecutable}". En este caso tendrías "Java HelloWorldJDBC" ya que ese es el punto de entrada a su programa. Si todo funciona como se esperaba, debería ver algo como lo siguiente como se muestra en un símbolo del sistema de Windows:

HelloWorldJDBC

¡Hecho!

¡Felicidades! Acaba de terminar su primera aplicación JDBC. Ahora que ha "ido y vuelto al disco" con JDBC, se le puede animar a examinar algunas muestras más sofisticadas. El resto del Demostraciones de JDBC se convierte en un tutorial paso a paso, que incluye confirmaciones y reversiones de transacciones, y relaciones multidireccionales entre tablas. Cada muestra debe ser rápida, informativa y completamente desechable cuando haya terminado.