Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Swing e database

  1. #1

    Swing e database

    Ciao, ho un problema con le swing; non so come fare per inserire i dati sul db attraverso le swing.Inoltre potete aiutarmi con l'inserimento delle date?non so come fare...
    Vi scrivo il codice delle varie classi(La classe che ha i metodi per inserire nel db è la classe ClienteDAO).
    Vi ringrazio...


    package DomainClasses;

    import java.sql.Date;

    import dac.dao.ClienteDAO;

    public class Cliente {
    private final String codiceFis;
    private String nome;
    private String cognome;
    private Date dataNascita;
    private String residenza;
    private int numero;
    private String oldCodiceFis;
    private String oldNome;
    private String oldCognome;
    private Date oldDataNascita;
    private String oldResidenza;
    private int oldNumero;

    public Cliente(String c) {
    codiceFis = c;
    }

    public String getNome() {
    return nome;
    }

    public void setNome(String nome) {
    this.oldNome=this.nome;
    this.nome = nome;
    }

    public String getCognome() {
    return cognome;
    }

    public void setCognome(String cognome) {
    this.oldCognome=this.cognome;
    this.cognome = cognome;
    }

    public Date getDataNascita() {
    return dataNascita;
    }

    public void setDataNascita(Date dataNascita) {
    this.oldDataNascita=this.dataNascita;
    this.dataNascita = dataNascita;
    }

    public String getResidenza() {
    return residenza;
    }

    public void setResidenza(String residenza) {
    this.oldResidenza=this.residenza;
    this.residenza = residenza;
    }

    public int getNumero() {
    return numero;
    }

    public void setNumero(int numero) {
    this.oldNumero=this.numero;
    this.numero = numero;
    }

    public String getCodiceFis() {
    return codiceFis;
    }

    public boolean equals(Object o) {
    if (o == null)
    return false;
    if (!(o instanceof Cliente))
    return false;
    Cliente o1 = (Cliente) o;
    return this.codiceFis.equals(o1.codiceFis);

    }

    public int hashCode() {
    return codiceFis.hashCode();
    }

    public String toString() {
    return codiceFis.toString() + nome.toString() + cognome.toString()
    + dataNascita.toString() + residenza.toString() + numero;
    }

    public String getOldCodiceFis() {
    return oldCodiceFis;
    }

    public String getOldNome() {
    return oldNome;
    }

    public String getOldCognome() {
    return oldCognome;
    }

    public Date getOldDataNascita() {
    return oldDataNascita;
    }

    public String getOldResidenza() {
    return oldResidenza;
    }

    public int getOldNumero() {
    return oldNumero;
    }

    public void leggiDatidaDB() throws Exception {
    ClienteDAO.load(this);
    }

    public void inserisciDatisuDB() throws Exception {
    ClienteDAO.insert(this);
    }

    public void aggiornaDatisuDB() throws Exception {
    ClienteDAO.update(this);
    }

    public void cancellaDatidaDB() throws Exception {
    ClienteDAO.delete(this);
    }

    }
    --------------------------------------------------------------------------------------------

    package dac.dao;

    import DomainClasses.*;

    import java.util.*;
    import java.sql.*;

    import utilityClasses.MyException;

    import dac.ConnectionManager;

    /* Data Access Object per l’entita’ Cliente
    * Incapsula le funzioni ed i tipi dato necessari
    * per manipolare le informazioni
    * della base dati pertinenti a detta entita’.
    * Si tratta di una utility class
    * non istanziabile.
    */

    public class ClienteDAO {
    public ClienteDAO() {
    }

    // Comando SQL per l’inserimento di una nuova istanza
    private static final String INSERT_SQL = "INSERT INTO Cliente VALUES (?, ?, ?, ?, ?, ?)";

    public static void insert(Cliente cliente) throws SQLException,
    ClassNotFoundException {
    Connection con = null;
    PreparedStatement pstmt = null;
    con = ConnectionManager.getConnection();
    pstmt = con.prepareStatement(INSERT_SQL);
    pstmt.setString(1, cliente.getCodiceFis());
    pstmt.setString(2, cliente.getNome());
    pstmt.setString(3, cliente.getCognome());
    pstmt.setDate(4, cliente.getDataNascita());
    pstmt.setString(5, cliente.getResidenza());
    pstmt.setInt(6, cliente.getNumero());

    pstmt.executeUpdate();
    pstmt.close();
    con.close(); // si assume la modalita’ autocommit
    }

    // Comando SQL per l’ottenimento di una nuova istanza
    private static final String FIND_BY_CODICE_FIS = "SELECT * FROM Cliente WHERE codiceFisc like %?%";

    public static void load(Cliente cliente) throws SQLException,
    ClassNotFoundException {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    con = ConnectionManager.getConnection();
    pstmt = con.prepareStatement(FIND_BY_CODICE_FIS);
    pstmt.setString(1, cliente.getCodiceFis());
    rs = pstmt.executeQuery();
    rs.next();
    cliente.setNome(rs.getString("NOME"));
    cliente.setCognome(rs.getString("COGNOME"));
    cliente.setDataNascita(rs.getDate("dataNascita"));
    cliente.setResidenza(rs.getString("RESIDENZA"));
    cliente.setNumero(rs.getInt("telefono"));

    rs.close();
    pstmt.close();
    con.close();
    }

    // Comando SQL per l’aggiornamento di una nuova istanza
    private static final String UPDATE_BY_CODICE_FIS = "UPDATE Cliente SET nome=?,cognome=?, dataNascita=?, residenza=?, telefono=? WHERE codiceFisc = ?";

    public static void update(Cliente cliente) throws MyException,
    ClassNotFoundException {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {

    con = ConnectionManager.getConnection();
    con.setAutoCommit(false);
    con.setTransactionIsolation(Connection.TRANSACTION _REPEATABLE_READ);
    pstmt = con.prepareStatement(FIND_BY_CODICE_FIS);
    pstmt.setString(1, cliente.getCodiceFis());
    rs = pstmt.executeQuery();
    if (rs.next())
    if (rs.getString(2) == cliente.getOldNome() && rs.getString(3) == cliente.getOldCognome() && rs.getDate(4) == cliente.getOldDataNascita()
    && rs.getString(5) == cliente.getOldResidenza() && rs.getInt(6) == cliente.getOldNumero()) {
    pstmt = con.prepareStatement(UPDATE_BY_CODICE_FIS);
    pstmt.setString(1, cliente.getCodiceFis());
    pstmt.setString(2, cliente.getNome());
    pstmt.setString(3, cliente.getCognome());
    pstmt.setDate(4, cliente.getDataNascita());
    pstmt.setString(5, cliente.getResidenza());
    pstmt.setInt(6, cliente.getNumero());
    pstmt.executeUpdate();
    con.commit();
    } else {
    // lancia una eccezione poiche’ la verifica
    // sullo stato e’ fallita
    con.setAutoCommit(true);
    con
    .setTransactionIsolation(Connection.TRANSACTION_RE PEATABLE_READ);
    throw new MyException("errore di aggiornamento");
    }
    } catch (SQLException ex) {
    if (con != null) {
    try {
    con.rollback();
    } catch (SQLException excep) {
    throw new MyException("Error: " + excep.getMessage());
    }
    }// end if
    }// end catch (ex)
    finally {
    if (con != null)
    try {
    pstmt.close();
    con.setAutoCommit(true);
    con
    .setTransactionIsolation(Connection.TRANSACTION_RE AD_COMMITTED);
    con.close();
    } catch (SQLException ex2) {
    throw new MyException("Error: " + ex2.getMessage());
    }
    }// end finally
    }// end insert

    // public static void update(Cliente cliente) throws SQLException,
    // ClassNotFoundException {
    // Connection con = null;
    // PreparedStatement pstmt = null;
    // ResultSet rs = null;
    // con = ConnectionManager.getConnection();
    // pstmt = con.prepareStatement(UPDATE_BY_CODICE_FIS);
    // pstmt.setString(6, cliente.getCodiceFis());
    // pstmt.setString(1, cliente.getNome());
    // pstmt.setString(2, cliente.getCognome());
    // pstmt.setDate(3, cliente.getDataNascita());
    // pstmt.setString(4, cliente.getResidenza());
    // pstmt.setInt(5, cliente.getNumero());
    // pstmt.executeUpdate();
    // pstmt.close();
    // con.close();
    //
    // }

    // Comando SQL per la cancellazione di un'istanza
    private static final String DELETE_SQL = "DELETE * FROM Cliente WHERE codiceFisc LIKE ?";

    public static void delete(Cliente cliente) throws SQLException,
    ClassNotFoundException {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    con = ConnectionManager.getConnection();
    pstmt = con.prepareStatement(DELETE_SQL);
    pstmt.setString(1, cliente.getCodiceFis());
    rs = pstmt.executeQuery();

    rs.close();
    pstmt.close();
    con.close();
    }

    }
    ---------------------------------------------------------------------------------------------------------
    package gui;

    import DomainClasses.*;

    import javax.swing.*;

    import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;

    public class ClienteSwing extends JPanel implements ActionListener {
    JPanel pannello, pannello1;
    JTextField datainizio, orainizio, codice, nome, cognome, residenza,
    telefono;
    JComboBox corso, giorno, mese, anno, ora, minuti;
    JButton inserisci, cancella;



    public ClienteSwing() {
    setLayout(new GridLayout(7, 2));

    add(new JLabel("Codice Fiscale:"));
    codice = new JTextField();
    add(codice);

    add(new JLabel("Nome:"));
    nome = new JTextField();
    add(nome);

    add(new JLabel("Cognome:"));
    cognome = new JTextField();
    add(cognome);

    //devo fare la data di nascita

    add(new JLabel("Residenza:"));
    residenza = new JTextField();
    add(residenza);

    add(new JLabel("Telefono:"));
    telefono = new JTextField();
    add(telefono);


    cancella = new JButton("Cancella");
    cancella.addActionListener(this);
    add(cancella);

    inserisci = new JButton("Inserisci");
    inserisci.addActionListener(this);
    add(inserisci);
    }

    public static void main(String[] args) {

    JFrame frame = new JFrame("Caricamento dati Edizione Corso");
    ClienteSwing u = new ClienteSwing();
    frame.setContentPane(u);
    frame.setSize(370, 280);
    ;
    frame.setLocation(350, 150);
    frame.show();
    }

    }

  2. #2
    cosa significa non riesci ad inserire i dati tramite le swing?

    ah, per il codice utilizza i tag
    [ CODE]
    //codice
    [ /CODE]
    così il sorgente viene visualizzato bene ^_^
    Write Once, Run Everywhere.
    Write Less, Do More.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.