Download Conexión de Java con Base de Datos - Itsp
Document related concepts
no text concepts found
Transcript
Conexión de Java con Base de Datos Programación II ITSP Mtr. Ing. Nancy López Conexión Java - BD • import java.sql.*; • SQL Lenguaje estructurado de consultas Conexión Java - BD • Definimos variables tipo String para guardar parámetros a utilizar. • String driver = "org.postgresql.Driver"; • String connectString = "jdbc:postgresql://localhost:5432/clientes"; • “ BD // ip : puerto/nombreBD” • String user = "postgres"; //el usuario • String password = "postgres"; //la contraseña Conexión Java - BD Cargamos el driver en memoria • Class.forName(driver); Creamos objeto Connection para conectarnos con la BD • Connection con = DriverManager.getConnection(connectString, user , password); • Creamos un objeto Statement que nos permite ejecutar sentencias SQL sobre la BD • Statement stmt = con.createStatement(); Método conectar() private void conectar() throws ClassNotFoundException { try { Class.forName(driver); con = DriverManager.getConnection(connectString, user , password); stmt = con.createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } Conexión Java - BD Realizamos una consulta sobre la BD. ResultSet=conjunto de resultados ResultSet rs = stmt.executeQuery("SELECT * FROM clientes"); Mientras haya datos, los cargamos en la lista while (rs.next()){ modeloLista.addElement(rs.getString("nombredepto")); } Nota: el nombre del campo debe ser IDÉNTICO a como está en la BD. Conexión Java - BD • Por último, cerramos el Statement y la conexión • stmt.close(); • con.close(); Método cargarLista() private void cargarLista() throws ClassNotFoundException { try { conectar(); ResultSet rs = stmt.executeQuery("SELECT * FROM departamentos"); while(rs.next()) { modeloLista.addElement(rs.getString("nombredepto")); //nombredepto es el campo de la tabla que quiero mostrar } rs.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } } Conexión Java - BD • Crear nuevo proyecto Java • Agregar .jar en Libraries Conexión Java - BD import java.awt.BorderLayout; import java.awt.EventQueue; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.DefaultListModel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; public class claseBD extends JFrame { private JPanel contentPane; private JTextField txtcoddepto; private JTextField txtnombredepto; private JList lstDepartamentos; private Connection con; private Statement stmt; private DefaultListModel modeloLista=new DefaultListModel(); String driver = "org.postgresql.Driver"; String connectString = "jdbc:postgresql://localhost:5432/baseClientes"; String user = "postgres"; String password = "postgres"; private void conectar() throws ClassNotFoundException { try { Class.forName(driver); con = DriverManager.getConnection(connectString, user , password); stmt = con.createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void cargarLista() throws ClassNotFoundException { /*HAGO LA CONSULTA DE TODOS LOS CLIENTES*/ try { conectar(); ResultSet rs = stmt.executeQuery("SELECT * FROM departamentos order by nombredepto"); /*RECORRO EL RESULTSET AGREGANDO LOS DATOS QUE QUIERO MOSTRAR EN EL JLIST*/ while(rs.next()) { modeloLista.addElement(rs.getString("nombredepto"));//nombredepto es el campo de la tabla que quiero mostrar } rs.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { claseBD frame = new claseBD(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. * @throws ClassNotFoundException */ public claseBD() throws ClassNotFoundException { setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); lstDepartamentos = new JList(modeloLista); lstDepartamentos.setBounds(32, 36, 136, 167); contentPane.add(lstDepartamentos); txtcoddepto = new JTextField(); txtcoddepto.setEditable(false); txtcoddepto.setBounds(237, 24, 86, 20); contentPane.add(txtcoddepto); txtcoddepto.setColumns(10); JLabel lblNombreHotel = new JLabel("C\u00F3digo"); lblNombreHotel.setBounds(238, 11, 74, 14); contentPane.add(lblNombreHotel); JLabel lblDireccinHotel = new JLabel("Nombre Departamento"); lblDireccinHotel.setBounds(236, 55, 126, 14); contentPane.add(lblDireccinHotel); txtnombredepto = new JTextField(); txtnombredepto.setBounds(237, 76, 107, 20); contentPane.add(txtnombredepto); txtnombredepto.setColumns(10); JLabel lblDepartamentos = new JLabel("Departamentos"); lblDepartamentos.setBounds(32, 11, 99, 14); contentPane.add(lblDepartamentos); JButton btnAgregar = new JButton("Agregar"); btnAgregar.setBounds(238, 123, 89, 23); contentPane.add(btnAgregar); JButton btnQuitar = new JButton("Quitar"); btnQuitar.setBounds(237, 165, 89, 23); contentPane.add(btnQuitar); // COMIENZO DE LA PROGRAMACIÓN //************* Carga la lista de departamentos cargarLista(); }//cierra implementación }//cierra clase