Práctica 3 Manejo de Base de Datos(Java-MySQL) desde consola Objetivo de la práctica: Realizar una aplicación Java que a partir de la base de datos seleccionada por cada alumno pueda hacer una aplicación Java de Consola que permita realizar un ABC y posteriormente realizar una aplicación Java de escritorio para tener una interface GUI (Interfaz Gráfica de Usuario) con las mismas operaciones de ABC sobre una base de datos en MySQL Prácticas 3.1.- Aplicación Java de base de datos en consola 3.2.-Aplicación Java de base de datos en escritorio (ventanas) Ambas prácticas se realizaran en un mismo proyecto en NetBeans por lo que comenzaremos abriendo una aplicación de escritorio (ventana) pero comenzaremos realizando la práctica en consola y posteriormente realizaremos la misma aplicación pero en escritorio. Estándares de siglas de materias Materia Organización de datos (L.I.) Taller de base de datos (I.S.C.) Tópicos avanzados de programación (L.I.) Tópicos selectos de programación (I.S.C.) Siglas de materia odd tbd tap tsp
Practica 3.- Aplicación Java de base de datos en consola Primero recordaremos unos comandos básicos de MySQL Comando Explicación Observaciones mysql -u root -p Para conectarse al servidor de base de datos MySQL desde consola Se ejecuta desde consola de MS-DOS en la ruta donde está la carpeta de MySQL y en bin (binarios o ejecutable) Ya dentro de MySQL show databases; Muestras las bases de datos create database nomb_bd; Crea una base de datos Sustituye el nomb_bd por el nombre que quieras darle a la base de datos use nomb_bd; ó connect nomb_bd; show tables; describe nomb_tabla; exit Se conecta a la base de datos Muestra las tablas existentes en la base de datos Muestra los campos y tipos de datos de la tabla Salir del servidor de base de datos MySQL Paso 3.1 crear la base de datos y la tabla Persona en MySQL
Mysql> create database agenda; Nota: hay que correr el script o los pasos para la creación de la tabla persona e introducir algunos registros y cree un usuario para esta base de datos (login: bingo y password:hola). CREATE TABLE persona ( ); id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(80), edad INT, sexo VARCHAR(15) INSERT INTO persona(nombre, edad, sexo) VALUES('Pepe',19,'masculino'); INSERT INTO persona(nombre, edad, sexo) VALUES('Mary',15,'femenino'); //En la base de datos agenda crea el usuario bingo con el password hola GRANT ALL on agenda.* TO bingo@localhost IDENTIFIED by 'hola'; Paso 3.2 Añadir la librería (JDBC: Java Data Base Conection)
que permite conectar MySQL con programas en Java mysql-connector-java-5.1.14.jar o una versión superior. Selección del archivo.jar
Archivo.jar ya incluido en la biblioteca
Paso 3.3 Añadir la clase Conexion.java al que contiene los atributos y métodos necesarios para conectarse a la base de datos Nota: Al añadir el código del archivo Conexión.java debes de respetar el nombre del package que debe ir al inicio del archivo y donde aparece con el nombre de la carpeta de la siguiente manera: package tap_gui_persona_nestorcarrillo En tu proyecto deberás respetar el nombre del package que corresponda con el nombre de la carpeta que estoy señalándote en la imagen siguiente
Añadir nueva clase Java Añadir el nombre de la clase es Conexion No coloques extensión ya que se la pone el NetBeans
Código de Conexión.java Nota: Solo cambia el package por el correspondiente a tu proyecto, de lo contrario te marcará error. package siglasmateria_gui_persona_nestorcarrillo;; /** * * @author Nestor */
import java.sql.*; public class Conexion { private String bd; private String user; private String password; private String url; private String driverclassname; private Connection conn = null; private Statement stmt; public Conexion(String user, String password, String url, String driverclassname) { this.user = user; this.password = password; this.url = url; this.driverclassname = driverclassname; public Conexion() { this.bd="agenda"; this.user = "bingo"; this.password="hola"; this.url = "jdbc:mysql://localhost/"+bd; //nombre de la base de datos //usuario de la base de datos //password de la base de datos //servidor de la base de datos
this.driverclassname = "com.mysql.jdbc.driver"; // driver public String getpassword() { return password; public String geturl() { return url; public String getuser() { return user; public void setpassword(string password) { this.password = password; public void seturl(string url) { this.url = url; public Connection getconn() { return conn;
public void setconn(connection conn) { this.conn = conn; public void setdriverclassname(string driverclassname) { this.driverclassname = driverclassname; public String getdriverclassname() { return driverclassname; public void setuser(string user) throws SQLException { this.user = user; public void conectar() throws SQLException { try { Class.forName(this.driverClassName).newInstance(); this.conn = DriverManager.getConnection(this.url, this.user, this.password); catch (Exception err) { System.out.println(
"Fallo al cargar el controlador JDBC/ODBC. Error " + err.getmessage()); public ResultSet obtenerdatos(string sql) throws SQLException { this.stmt = conn.createstatement(); return this.stmt.executequery(sql); public void actualizar(string sql) throws SQLException { this.stmt = conn.createstatement(); stmt.executeupdate(sql); public void escribir(string sql) throws SQLException { this.stmt = conn.createstatement(); stmt.execute(sql); public ResultSet ExeGet(String Q) throws SQLException{ Statement st = this.conn.createstatement(); return (ResultSet) st.executequery(q);
public int Exe(String Q) throws SQLException{ Statement st = this.conn.createstatement(); return st.executeupdate(q); public void Off() throws SQLException{ this.conn.close(); //class Conextion Paso 3.4 añadir una clase nueva aplicación de consola para realizar las operaciones de ABC sobre la base de datos Persona en el servidor de base de datos MySQL
Nombre del archivo de consola a agregar siglasmateria_consolabd_tipodedato_tunombreapellido Estándares de siglas de materias Materia Organización de datos (L.I.) Taller de base de datos (I.S.C.) Tópicos avanzados de programación (L.I.) Tópicos selectos de programación (I.S.C.) SiglasMateria odd tbd tap tsp En mi caso siglasmateria_consolabd_persona_nestorcarrillo