









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Guía de como conectar java con mysql
Tipo: Guías, Proyectos, Investigaciones
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










En este semestre se continuará trabajando con java, especialmente la interfaz gráfica y conexión a la base de datos mysql. Para ello continuarán trabajando con el ejercicio del semestre anterior, en el cual ya los alumnos que lo entregaron en el semestre anterior, tienen la mayor parte del trabajo avanzado. Solo le corresponde conectarse a la base de datos y realizar el CRUD (consultar- agregar-actualizar-borrar) a la base de datos. En este aspecto se basarán las evaluaciones del semestre. I CORTE: Diseño de la interfaz grafica y modelado de base de datos con sus respectivas relaciones entre las tablas pertinentes. II CORTE: Conexión a la base de datos. III CORTE: Modulo de consulta y agregar datos desde java a mysql IV CORTE: Modulo de actualizar y borrar datos desde java a mysql. Para poder trabajar con la interfaz gráfica, debe descargar para eclipse el componente windowbuilder de java e instalarlo a su programa. Otra opción es que instale en su máquina el programa netBeans que ya tiene la interfaz gráfica agregada. Adicionalmente debe descargar los drivers de mysql para java. Debe revisar la versión de equipo para descargar la adecuada. Configurar y probar que se ejecute la conexión desde java a mysql.
Lectura complementaria para trabajar con bases de datos en java Hay tres tipos de bases de datos, bases de datos relacionales, base de datos relacionales-objetos y bases de datos orientadas a objetos. En esta lectura se explicara brevemente el uso de la base de datos relacional, queda de parte del estudiante profundizar la información. Ya que no se puede encontrar un denominador común para el requerimiento y acceso de datos entre los tres tipos de bases de datos, la especificación del JDBC permite requerimientos no específicos en el DBMS (DataBase Management System) subyacente. En lugar de colocar requerimientos de cómo se debe implementar el DBMS para poder usar con programas java, la especificación JDBC coloca todos sus requerimientos en la implementación específica del JDBC. Se requiere que todas las implementaciones JDBC soporten por lo menos el nivel básico ANSI SQL-2. Al escribir programas en java que se comunican con un base de datos, los siguientes requerimiento son esenciales: Una base de datos relacional Interfaz java (a través del API de JDBC) Conocimiento básico de sentencias SQL. Pasos involucrados en el accedo a base de datos Cuando se habla de acceso a una base de datos, hay dos operaciones que un programa java puede ejecutar. Leer datos de una base de datos. Escribir a una base de datos Sin embargo, un programa java es una entidad externa, residiendo fuera del sistema manejador de base de datos. ¿Cómo se hace para que nuestros programas ejecuten estas tareas? Para que esas operaciones se puedan ejecutar, debe existir una conexión entre el programa java y el sistema de base de datos.
DriverManager carga el controlador requerido directamente. La aplicación usa DriverManager para establecer conexiones a base de datos Driver crea conexiones internamente. La aplicación usa el objeto Connection para obtener objetos Statement. Los conjuntos resultado se reciben de los objetos Statement mediante la aplicación. La aplicación obtiene datos del objeto ResultSet. El objeto Connection se relaciona al objeto DatabaseMetaData PreparedStatament hereda de Statement. CallableStatement hereda de PreparedStatement Tipos de controladores JDBC Controlador JDBC-ODBC (Tipo 1) Controlador API-Nativo (Tipo 2) Controlador de Protocolo Red (Tipo 3) Controlador Protocolo-Nativo (Tipo 4) Cargar el controlador Los fabricantes de sistemas de base de datos proveen sus propios controladores para poder conectarse con la base de datos. Por ejemplo, para trabajar con IBM UDB DB2, se necesita el DB2Driver.Para trabajar con Microsoft Access o Microsoft SQL, se usa el jdbcOdbcDriver. Para MYSQL se usa Connector/J(Driver) y para PostgreSQL, se usa JDBCdriver(Driver). Para cargar el controlar, se necesita usar el método forName en la clase Class con el nombre del controlar como argumento. La clase nativa Class se define como una clase public y final. No tiene constructores public. Los objetos de Class representan clases e interfaces de una aplicación Java en ejecución. Los objetos de Class son construidos
automáticamente por la JVM cuando se cargan las clases, y por las llamadas al método defineClass en el cargador de clases. Hacer una conexión Se explicó anteriormente que la aplicación usa la clase DriveManager para establecer la conexión con DBMS. La clase DriverManager es responsable de buscar o rastrear las diferentes implementaciones JDBC que puedan existir en un sistema. La aplicación requiere que DriverManager le dé una conexión de base de datos. La clase DriveManager provee un método llamado getConnection(). Este método tiene tres argumentos: Un URL de la base de datos. Identificación de usuario (login ID). Clave de usuario. Un URL de la base de datos es un simple Localizador Uniforme de Recursos estándar de Internet. Consiste de tres partes, separadas por dos puntos: protocol:
Conn = DriverManager.getConnection(databaseURL, “user”, “password”); Crear objetos Statement Una vez establecida una conexión usando el método getConnection() de DriverManager se puede crear una sentencia SQL. Una sentencia normalmente es una de las siguientes: UPDATE INSERT DELETE SELECT EJEMPLO COMPLETO JDBC En este ejemplo se usaran tres tablas en una base de datos llamada Sample en IBM UDB DB2.. Las tablas usadas en el ejemplo son las siguientes: Una tabla que guarda información acerca de productos Una tabla que guarda información acerca de proveedores de productos Una tabla que guarda información acerca de los productos que vende un proveedor. Nombre de la base de datos: Sample Usuario: db2admin Clave : 123 Nombre de la tabla: Producto nombre de columna tipo de dato longitud Pid int 4 Pnombre varchar 200 Pprecio float 8 Pcolor varchar 10
Nombre de la tabla: Proveedores nombre de columna tipo de dato longitud Sid int 4 Snombre varchar 100 Sregion varchar 50 Sdescripcion varchar 250 Nombre de la tabla: Producto-proveedores nombre de columna tipo de dato longitud Pid int 4 Sid int 4 cantidad int 4 /* El código java comienza aquí / / importar paquetes / import java.sql.; /* Definición de la clase DBAcceso / Class DBAacceso{ Connection conn; Statement stmt; / Constructor DBAcceso comienza aquí / DBAacceso() throws SQLException,ClassNotFoundException{ //obtener conexión a base de datos Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver”); / para MySQL sería Class.forName(“com.mysql.Driver”); / / para postgresSQL sería Class.forName(“org.postgresql.Driver”); / Con = DriverManager.getConnection(“jdbc:db2:Sample”, “db2admin”, “123”); / para MySQL sería
stmt.executeUpdate(“INSERT INTO Producto-proveedores ” + “(Pid ,Sid, cantidad)VALUES(1000, 101, 500)”); }//fin insertarDatos /*para consultar datos desde la base de datos */ void consultarDatos() throws SQLException{ ResultSet rs; Stmt = con.createStatement(); rs = stmt.executeQuery(“SELECT * FROM Producto”); System.out.println(“Tabla productos…\n”); while(rs.next()){ System.out.println(rs.getInt(1) + “ ” + Rs.getString(2) + “ “ + rs.getFloat(3) + “ “ + rs.getString(4)); }//fin while rs =stmt.executeQuery(“SELECT * FROM Proveedores”); System.out.println(“Tabla proveedores…\n”); while(rs.next()){ System.out.println(rs.getInt(1) + “ ” + Rs.getString(2) + “ “ + rs.getString(3) + “ “ + rs.getString(4)); }//fin while rs = stmt.executeQuery(“SELECT * FROM Producto- Proveedores”); System.out.println(“\n”); System.out.println(“Tabla producto-proveedores\n”); while(rs.next()){ System.out.println(rs.getInt(1) + “ ” + Rs.getInt(2) + “ “ + rs.getInt(3));
}//fin while System.out.println(“\n”); rs.close(); }//fin consultarDatos /*para actualizar datos la base de datos */ void actualizarDatos() throws SQLException{ int nFilas; stmt = conn.createStatement(); nFilas = stmt.executeUpdate(“UPDATE producto SET pcolor = ‘Rojo’ WHERE pcolor = ‘azul’”); System.out.println(“Numero de filas afectadas: ”
Problema: El problema que se va a resolver consiste en elaborar un software en Java con interfaz gráfica y conexión a MySQL para la agencia bancaria “Tikito tu plata”, S.A. Dicha entidad ofrece a sus clientes los siguientes servicios financieros: a) Apertura de cuentas: Corriente, ahorro y cuentas verdes b) Retiro de efectivo, transferencias entre cuentas y depósitos. c)Imprimir como pdf estados de cuenta d) Consultar saldo por días o por rangos de fechas válidas, ordenados de menor a mayor. Al momento de abrir una cuenta, el cliente debe entregar los siguientes recaudos a la agencia bancaria: Copia de cedula de identidad, Rif, carta de residencia, Nro de teléfono, correo y un monto mínimo de apertura de 50Bs para las cuentas en moneda nacional y 50$ en divisas si la cuentas verdes. Un cliente puede poseer los tres (3) instrumentos financieros si así lo desea. Cada vez que realice un depósito y/o retiro; éstas deben actualizarse inmediatamente y mostrar el saldo actual a través de la pantalla y/o recibo impreso si así el cliente lo decide a través del menú. Para ello, utilizara un pdf para generar dichos recibos. Ejemplo: Logo del Banco Fecha y hora de la transacción: 1/10/ 13: No. de Referencia : 7777777 Nro Cuenta: 0102-****- Debito/crédito Monto Saldo 2500 Crédito 100 2600 Crédito 200 2800 Debito 150 2650
En el caso de las transferencias entre cuentas, debe indicar la información como se presenta a continuación: Logo del Banco Fecha y hora de la transacción: 1/10/ 13: Operación realizada exitosa No. de Referencia : 7777777 Cliente V-12.123.456 Juan Pérez Cuenta de origen 0100-****- Cuenta destino 0102-****- Monto Bs. 200, ¿Cómo se debe realizar el ingreso de los datos? El cliente ingresa al sistema a través de una interfaz de usuario y clave. Si existe le presenta el menú de opciones, en caso contrario, el usuario dispondrá de tres (3) intentos para acceder al sistema. Luego de eso se bloqueara y podrá desbloquearse a través de preguntas de seguridad. ¿Qué opciones debe incluir el menú desbloqueo de usuario? En este módulo de desbloqueo, el usuario podrá modificar su clave de acceso, preguntas y respuestas de seguridad. El sistema mostrará un mensaje por pantalla si la operación fue satisfactoria o no Una vez que el usuario ha logrado ingresar al sistema, la aplicación del banco le abrirá el menú de opciones para realizar cualquiera de las operaciones que el cliente desee hacer. Cuando el cliente realice un retiro de su cuenta, éste no podrá dejar la cuenta en Cero (0), tendrá que dejar un mínimo de 1.00 bs como saldo.