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