reporte conexion a bd desde java

17
Instituto Tecnológico de Oaxaca PROGRAMACIÓN AVANZADA REPORTE DE CONEXIÓN DE BASES DE DATOS DESDE JAVA 6º SEMESTRE CATEDRATICO: A. ARTURO ARAGON SORROZA ALUMNA: COLMENARES HERNANDEZ BERTHA IVETT

Upload: ivette-colmenares

Post on 18-Apr-2015

56 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Reporte Conexion a Bd Desde Java

Instituto Tecnológico de Oaxaca

PROGRAMACIÓN AVANZADA

REPORTE DE CONEXIÓN DE BASES DE DATOS DESDE JAVA

6º SEMESTRE

CATEDRATICO: A. ARTURO ARAGON SORROZA

ALUMNA:

COLMENARES HERNANDEZ BERTHA IVETT

Page 2: Reporte Conexion a Bd Desde Java

REPORTE: EJERCICIO DE CONEXIÓN A BASES DE DATOS DESDE JAVA

El siguiente reporte se realizo de acuerdo a la última unidad que abarca la materia de Programación Avanzada.

El objetivo principal de este proyecto, fue conectar una base de datos situada en cualquier programa editor de la misma desde una plataforma java.

Para hacer posible la conexión de la base de datos con la plataforma java, trabaje con el gestor de bases de datos PostgreSQL y con DrJava.

CONEXIÓN

Antes de comenzar a codificar la conexión en java, primero instale el gestor de bases de datos PostgreSQL he inserte los scripts de los datos que contiene información sobre una tienda de artesanías, así mismo, el controlador de bases de datos JDBC correspondiente a PostgreSQL (postgresql-9.0-801.jdbc3).

En DrJava, en el menú edit en la opción Preferences… se encuentra la opción Extra Classpath, en Add agregue el controlador postgresql-9.0-801.jdbc3 para que sea reconocible la base de datos que se encuentra en PostgresSQL.

Page 3: Reporte Conexion a Bd Desde Java

Después en PostgreSQL, agregue los scripts creacion_tablas_artesanias.sql e insercion_datos_artesanias.sql correspondientes para la creación de la base de datos artesanías.

Page 4: Reporte Conexion a Bd Desde Java

Una vez que obtuve las tablas con los datos de las artesanías, clientes, vendedores y artesano por mencionar con los que trabaje principalmente, codifique las clases:

• MostrarBase • MostrarArtesano • MostrarCliente • MostrarVendedor • InicioBase

Esto, para poder realizar una interfaz simple de consulta de datos desde la base en PostgreSQL, seleccionando el botón correspondiente de cada tabla de datos aparecerán los que se encuentran disponibles dentro de la base en postgresql.

La primer clase que codifique fue MostrarBase es la que se conecta a la base de datos artesanías ubicada en PostgreSQL para obtener la tabla artesanía y posteriormente leer los datos que contiene la tabla para después mostrarlos en un JTextArea.

El código de la clase MostrarBase es el siguiente:

import java.awt.*; import java.sql.*; //Librerías import java.util.*; import javax.swing.*; public class MostrarBase extends JFrame{ String driver = "org.postgresql.Driver"; //direccion de la base de datos Postgresql String connectString = "jdbc:postgresql://localhost:5432/postgres"; //jdbc de postgresql, Puerto String user = "postgres"; //Usuario String password = "ivett1321"; //Contraseña private Connection con; //Objeto que establece la conexión private Statement stmt; //accede a la base para establecer consultas public MostrarBase(){ //Constructor try{ Class.forName(driver); //carga la clase del controlador donde esta la base de datos (dirección) con = DriverManager.getConnection(connectString,user,password); //establece conexión

Page 5: Reporte Conexion a Bd Desde Java

stmt = con.createStatement(); //Consulta la base de datos ResultSet rs = stmt.executeQuery("SELECT * FROM artesanias.artesania"); //Consulta la //base de datos artesanías y llama a la tabla artesanía //leen los datos que se están consultando StringBuffer resultados = new StringBuffer(); ResultSetMetaData metaDatos = rs.getMetaData(); int numeroDeColumnas = metaDatos.getColumnCount(); //Obtiene los datos de la tabla for(int i=1; i<= numeroDeColumnas; i++) resultados.append(metaDatos.getColumnName(i)+ "\t"); resultados.append("\n"); while(rs.next()){ //Mientras existan datos en la tabla for(int i=1; i<= numeroDeColumnas;i++) resultados.append(rs.getObject(i)+ "\t"); //Obtiene los datos en forma de Objetos resultados.append("\n"); } //Creacion de GUI JTextArea areaTexto = new JTextArea(resultados.toString()); areaTexto.setBackground(Color.CYAN); Container contenedor = getContentPane(); contenedor.add(new JScrollPane(areaTexto)); setTitle("Tabla de Clientes"); setSize(620,390); setLocation(60,20); setVisible(true); }catch(Exception e ){ System.out.println("ERROR"); // si ocurre una excepción se cierra el JFrame System.exit(1); } finally{ try{ stmt.close(); //Cierran la conexión con.close(); }catch(SQLException excepcionSql){ JOptionPane.showMessageDialog(null, excepcionSql.getMessage(), "Error en la Base de Datos", JOptionPane.ERROR_MESSAGE); System.exit(1); } } }

Page 6: Reporte Conexion a Bd Desde Java

public static void main (String[] args) { MostrarBase ventana = new MostrarBase(); ventana.insertar(); ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Para la clase MostrarArtesano se hizo referencia a la tabla artesano de la

base de datos:

import java.awt.*; import java.sql.*; //Librerías import java.util.*; import javax.swing.*; public class MostrarArtesano extends JFrame{ String driver = "org.postgresql.Driver"; //direccion de la base de datos Postgresql String connectString = "jdbc:postgresql://localhost:5432/postgres"; //jdbc de postgresql, Puerto String user = "postgres"; String password = "ivett1321"; private Connection con; private Statement stmt; //accede a la base para establecer consultas public MostrarArtesano(){ try{ Class.forName(driver); con = DriverManager.getConnection(connectString, user , password); stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM artesanias.artesano"); //leen los datos que se están consultando StringBuffer resultados = new StringBuffer(); ResultSetMetaData metaDatos = rs.getMetaData(); int numeroDeColumnas = metaDatos.getColumnCount(); for(int i=1; i<= numeroDeColumnas; i++) //Obtiene los datos de la tabla resultados.append(metaDatos.getColumnName(i)+ "\t"); resultados.append("\n"); while(rs.next()){ //Mientras existan datos en la tabla

Page 7: Reporte Conexion a Bd Desde Java

for(int i=1; i<= numeroDeColumnas;i++) resultados.append(rs.getObject(i)+ "\t"); //Obtiene los datos en forma de Objetos resultados.append("\n"); } JTextArea areaTexto = new JTextArea(resultados.toString()); areaTexto.setBackground(Color.CYAN); Container contenedor = getContentPane(); contenedor.add(new JScrollPane(areaTexto)); setTitle("Tabla de Artesanos"); setSize(620,390); setLocation(60,20); setVisible(true); }catch(Exception e ){ System.out.println("ERROR"); System.exit(1); } finally{ try{ stmt.close(); //Cierran los flujos de conexión con.close(); }catch(SQLException excepcionSql){ JOptionPane.showMessageDialog(null, excepcionSql.getMessage(), "Error en la Base de Datos", JOptionPane.ERROR_MESSAGE); System.exit(1); } } } public static void main (String[] args) { MostrarArtesano ventanaArt = new MostrarArtesano(); ventanaArt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Page 8: Reporte Conexion a Bd Desde Java

Clase MostrarVendedor:

import java.awt.*; import java.sql.*; import java.util.*; import javax.swing.*; public class MostrarVendedor extends JFrame{ String driver = "org.postgresql.Driver"; //dirección de la base de datos Postgresql String connectString = "jdbc:postgresql://localhost:5432/postgres"; // jdbc controlador String user = "postgres"; String password = "ivett1321"; private Connection con; private Statement stmt; public MostrarVendedor(){ try{ Class.forName(driver); con = DriverManager.getConnection(connectString, user , password); stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM artesanias.vendedor"); //Obtiene la table vendedor StringBuffer resultados = new StringBuffer(); ResultSetMetaData metaDatos = rs.getMetaData(); int numeroDeColumnas = metaDatos.getColumnCount(); for(int i=1; i<= numeroDeColumnas; i++) resultados.append(metaDatos.getColumnName(i)+ "\t"); resultados.append("\n"); while(rs.next()){ for(int i=1; i<= numeroDeColumnas;i++) resultados.append(rs.getObject(i)+ "\t"); resultados.append("\n"); } JTextArea areaTexto = new JTextArea(resultados.toString()); areaTexto.setBackground(Color.CYAN); Container contenedor = getContentPane(); contenedor.add(new JScrollPane(areaTexto)); setTitle("Tabla de Vendedor"); setSize(620,390); setLocation(60,20); setVisible(true); }catch(Exception e ){ System.out.println("ERROR");

Page 9: Reporte Conexion a Bd Desde Java

System.exit(1); } finally{ try{ stmt.close(); con.close(); }catch(SQLException excepcionSql){ JOptionPane.showMessageDialog(null, excepcionSql.getMessage(), "Error en la Base de Datos", JOptionPane.ERROR_MESSAGE); System.exit(1); } } } public static void main (String[] args) { MostrarVendedor ventanaVen = new MostrarVendedor(); ventanaVen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Igualmente para MostrarCliente:

import java.awt.*; import java.sql.*; //Librerías import java.util.*; import javax.swing.*; public class MostrarCliente extends JFrame{ String driver = "org.postgresql.Driver"; //direccion de la base de datos Postgresql String connectString = "jdbc:postgresql://localhost:5432/postgres"; //jdbc de postgresql, Puerto String user = "postgres"; String password = "ivett1321"; private Connection con; private Statement stmt; //accede a la base para establecer consultas public MostrarCliente(){ try{ Class.forName(driver); con = DriverManager.getConnection(connectString, user , password); stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM artesanias.cliente"); //leen los datos que se están consultando

Page 10: Reporte Conexion a Bd Desde Java

StringBuffer resultados = new StringBuffer(); ResultSetMetaData metaDatos = rs.getMetaData(); int numeroDeColumnas = metaDatos.getColumnCount(); for(int i=1; i<= numeroDeColumnas; i++) //Obtiene los datos de la tabla resultados.append(metaDatos.getColumnName(i)+ "\t"); resultados.append("\n"); while(rs.next()){ //Mientras existan datos en la tabla for(int i=1; i<= numeroDeColumnas;i++) resultados.append(rs.getObject(i)+ "\t"); //Obtiene los datos en forma de Objetos resultados.append("\n"); } JTextArea areaTexto = new JTextArea(resultados.toString()); areaTexto.setBackground(Color.CYAN); Container contenedor = getContentPane(); contenedor.add(new JScrollPane(areaTexto)); setTitle("Tabla de Artesanos"); setSize(620,390); setLocation(60,20); setVisible(true); }catch(Exception e ){ System.out.println("ERROR"); System.exit(1); } finally{ try{ stmt.close(); //Cierran los flujos de conexión con.close(); }catch(SQLException excepcionSql){ JOptionPane.showMessageDialog(null, excepcionSql.getMessage(), "Error en la Base de Datos", JOptionPane.ERROR_MESSAGE); System.exit(1); } } } public static void main (String[] args) { MostrarCliente ventanaCli= new MostrarCliente(); ventanaCli.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Page 11: Reporte Conexion a Bd Desde Java

Clase InicioBase:

Esta clase solo contiene una ventana de inicio que con los botones de cada clase anterior que conecta a la base de datos para la consulta correspondiente de la tabla deseada, muestra los datos que se obtuvieron de las tablas al realizar la consulta en postgresql.

import java.awt.*; import java.awt.event.*; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.JOptionPane; public class InicioBase extends JFrame { JButton mostrarDatos; JButton salir; JButton artesano; JButton vendedor; JButton cliente; JPanel panel; JPanel panel1; JPanel panel2; public InicioBase(){ mostrarDatos=new JButton(); salir=new JButton(); cliente=new JButton(); vendedor=new JButton(); artesano=new JButton(); panel=new JPanel(); panel1=new JPanel(); panel2=new JPanel(); JLabel etiqueta1 = new JLabel(" INICIO"); JLabel etiqueta2 = new JLabel(" "); JLabel etiqueta3 = new JLabel(" "); JLabel etiqueta5 = new JLabel(" BASE DE DATOS ARTESANIAS"); etiqueta5.setFont(new Font("Comic Sans Ms", 1, 34)); setTitle("Conecta Bases de Datos"); this.setSize(620,390); setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE); setLocation(60,20); panel.setBackground(Color.ORANGE);

Page 12: Reporte Conexion a Bd Desde Java

panel.setLayout(new GridLayout()); panel.add(etiqueta2); panel.add(etiqueta1); panel.add(etiqueta3); getContentPane().add(panel,BorderLayout.NORTH); panel1.setLayout(new BorderLayout()); panel1.setBackground(Color.YELLOW); panel1.add(etiqueta5); getContentPane().add(panel1,BorderLayout.CENTER); panel2.setLayout(new FlowLayout()); mostrarDatos.setText("Artesanias"); artesano.setText("Artesano"); vendedor.setText("Vendedor"); cliente.setText("Cliente"); salir.setText("Salir"); mostrarDatos.setBackground(Color.GREEN); artesano.setBackground(Color.GREEN); vendedor.setBackground(Color.GREEN); cliente.setBackground(Color.GREEN); salir.setBackground(Color.GREEN); panel2.add(mostrarDatos); panel2.add(artesano); panel2.add(vendedor); panel2.add(cliente); panel2.add(salir); panel2.setBackground(Color.ORANGE); getContentPane().add(panel2,BorderLayout.SOUTH); setVisible(true); mostrarDatos.addActionListener(new Mostrar()); artesano.addActionListener(new MostrarArtesanoBa()); vendedor.addActionListener(new MostrarVendedorBa()); cliente.addActionListener(new MostrarClienteBa()); salir.addActionListener(new Closee()); } private class Mostrar implements ActionListener{ public void actionPerformed(ActionEvent e){ MostrarBase mostrarArte=new MostrarBase(); } }

Page 13: Reporte Conexion a Bd Desde Java

private class MostrarArtesanoBa implements ActionListener{ public void actionPerformed(ActionEvent e){ MostrarArtesano mostrarArt=new MostrarArtesano(); } } private class MostrarVendedorBa implements ActionListener{ public void actionPerformed(ActionEvent e){ MostrarVendedor mostrarVe=new MostrarVendedor(); } } private class MostrarClienteBa implements ActionListener{ public void actionPerformed(ActionEvent e){ MostrarCliente mostrarCli=new MostrarCliente(); } } private class Closee implements ActionListener{ public void actionPerformed(ActionEvent e){ System.exit(1); } } public static void main(String[] args){ InicioBase inicio=new InicioBase(); } }

Page 14: Reporte Conexion a Bd Desde Java

IMÁGENES CORRESPONDIENTES A LA APLICACIÓN QUE MUESTRA LA INFORMACIÓN DE LAS TABLAS DE LA BASE DE DATOS.

InicioBase

MostrarBase

Page 15: Reporte Conexion a Bd Desde Java

MostrarArtesano

MostrarVendedor

Page 16: Reporte Conexion a Bd Desde Java

MostrarCliente

Page 17: Reporte Conexion a Bd Desde Java

CONCLUSIONES

Como conclusión a este ejercicio de conexión de Bases de datos con java es que, es una forma muy practica para poder manipular la información de la base de datos sin tener que acceder al gestor de bases.

A pesar de que los conocimientos de SQL y gestores del mismo son muy escasos, es fácil de entender los códigos en java para conectar las bases ya que solo se da la dirección de la base dependiendo el gestor y así mismo los controladores necesarios para poder manipular los datos de las tablas desde un programa en java.

Donde se comenzó a complicar fue el la inserción de datos y eliminación ya que si no se dan los valores exactos de los datos que se están modificando, así como los tipos de datos, estos marcan errores. Aun seguiré trabajando en eso hasta lograr una aplicación que haga todas las operaciones básicas sobre la base de datos.

Alumna: Colmenares Hernández Bertha Ivett