Upload
vuthu
View
227
Download
0
Embed Size (px)
Citation preview
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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 Siglas de materia
Organización de datos (L.I.)
odd
Taller de base de datos (I.S.C.)
tbd
Tópicos avanzados de programación
(L.I.)
tap
Tópicos selectos de programación
(I.S.C.)
tsp
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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)
show databases; Muestras las bases de datos
Ya dentro de MySQL
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;
Se conecta a la base de datos
show tables; Muestra las tablas existentes en la base de datos
describe nomb_tabla; Muestra los campos y tipos de datos de la tabla
exit Salir del servidor de base de datos MySQL
Paso 3.1 crear la base de datos y la tabla
„Persona‟ en MySQL
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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)
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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
*/
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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"; //nombre de la base de datos
this.user = "bingo"; //usuario de la base de datos
this.password="hola"; //password de la base de datos
this.url = "jdbc:mysql://localhost/"+bd; //servidor de la base de datos
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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;
}
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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(
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
"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);
}
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
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
Ing. Néstor Alejandro Carrillo López I.T.Zacatecas
Nombre del archivo de consola a agregar
siglasMateria_ConsolaBD_TipoDeDato_TuNombreApellido
Estándares de siglas de materias
Materia SiglasMateria
Organización de datos (L.I.)
odd
Taller de base de datos (I.S.C.)
tbd
Tópicos avanzados de programación
(L.I.)
tap
Tópicos selectos de programación
(I.S.C.)
tsp
En mi caso “siglasMateria_consolaBD_Persona_NestorCarrillo”