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();
}
}

Rispondi quotando