Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package model.dao;
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import model.Dto;
- import model.Prodotto;
- public class DaoProdotto{
- static Connection conn; //attributo statico per la connessione
- private ArrayList<Prodotto> tabellaProdotti = new ArrayList<>();
- private ArrayList<Dto> tabellaDto = new ArrayList<>();
- public static void apriConnessione() {
- try {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "suso");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void chiudiConnessione() {
- try {
- conn.close();
- Thread.sleep(4000);
- } catch(SQLException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public void inserisci(Prodotto p) {
- PreparedStatement ps;
- String query = "INSERT INTO PRODOTTI(nomeprodotto, id_marca, id_categoria, descrizione, linkimmagine, id) VALUES(?,?,?,?,?, id.nextval)";
- apriConnessione();
- try {
- ps = (PreparedStatement) conn.prepareStatement(query);
- ps.setString(1, p.getNome_prodotto());
- ps.setString(2, p.getDescrizione());
- ps.setString(3, p.getPercorso_immagine());
- ps.setInt(4, p.getId_marca());
- ps.setInt(5, p.getId_categoria());
- ps.executeUpdate();
- ps.close();
- } catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- }
- public void inserisciConProcedura(Prodotto p) {
- apriConnessione();
- try {
- CallableStatement cst = conn.prepareCall("{call INSERIMENTOPRODOTTI(?,?,?,?,?)}");
- cst.setString(1, p.getNome_prodotto());
- cst.setString(2, p.getDescrizione());
- cst.setString(3, p.getPercorso_immagine());
- cst.setInt(4, p.getId_marca());
- cst.setInt(5, p.getId_categoria());
- cst.executeUpdate();
- cst.close();
- } catch(SQLException e) {
- e.printStackTrace();
- }
- }
- public Prodotto leggi(int index) {
- return this.tabellaProdotti.get(index);
- }
- public ArrayList<Prodotto> leggi() {
- String query = "SELECT * FROM PRODOTTI";
- apriConnessione();
- try {
- PreparedStatement ps = (PreparedStatement) conn.prepareStatement(query);
- ResultSet rs = ps.executeQuery(query);
- while(rs.next()) {
- Prodotto p = new Prodotto(); //genera nuovo prodotto da inserirei nell'arraylist
- p.setId_prodotto(rs.getInt("id_prodotto"));
- p.setNome_prodotto(rs.getString("nome_prodotto"));
- p.setDescrizione(rs.getString("descrizione"));
- p.setPercorso_immagine(rs.getString("percorso_immagine"));
- p.setId_marca(rs.getInt("id_marca"));
- p.setId_categoria(rs.getInt("id_categoria"));
- tabellaProdotti.add(p); //aggiunge
- }
- ps.close();
- rs.close();
- } catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- return tabellaProdotti;
- }
- public void modifica(Prodotto p){
- PreparedStatement ps = null;
- String query = "UPDATE prodotti SET NOMEPRODOTTO = ?, DESCRIZIONE = ?, LINKIMMAGINE = ?, IDMARCA = ?, IDCATEGORIA = ? WHERE ID = ?";
- try {
- apriConnessione();
- ps = (PreparedStatement) conn.prepareStatement(query);
- ps.setString(1, p.getNome_prodotto());
- ps.setString(2, p.getDescrizione());
- ps.setString(3, p.getPercorso_immagine());
- ps.setInt(4, p.getId_marca());
- ps.setInt(5, p.getId_categoria());
- ps.setInt(6, p.getId_prodotto());
- ps.executeUpdate();
- ps.close();
- }catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- }
- public void modificaConProcedura(Prodotto p) {
- apriConnessione();
- try {
- CallableStatement cst = conn.prepareCall("{call MODIFICAPRODOTTI(?,?,?,?,?,?)}");
- cst.setString(1, p.getNome_prodotto());
- cst.setString(2, p.getDescrizione());
- cst.setString(3, p.getPercorso_immagine());
- cst.setInt(4, p.getId_marca());
- cst.setInt(5, p.getId_categoria());
- cst.setInt(6, p.getId_prodotto());
- cst.executeUpdate();
- cst.close();
- } catch(SQLException e) {
- e.printStackTrace();
- }
- }
- public void cancella(Prodotto p) {
- apriConnessione();
- String query = "DELETE FROM PRODOTTI WHERE ID =" + p.getId_prodotto();
- PreparedStatement ps;
- try {
- ps = (PreparedStatement) conn.prepareStatement(query);
- ps.executeUpdate(query); //effettua cancellazione dal DB
- } catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- }
- public void cancellaConProcedura(Prodotto p) {
- apriConnessione();
- try {
- CallableStatement cst = conn.prepareCall("{call CANCELLAMENTOPRODOTTI(?)}");
- cst.setInt(1, p.getId_prodotto());
- cst.executeUpdate(); //effettua cancellazione dal DB
- } catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- }
- public ArrayList<Dto> leggiDto() {
- return this.tabellaDto;
- }
- public ArrayList<Dto> generaDto(){
- apriConnessione();
- String query = ("SELECT ID, NOMEPRODOTTI, DESCRIZIONE, LINKIMMAGINE, NOMEMARCA, NOMECATEGORIA FROM PRODOTTI JOIN MARCHE ON PRODOTTI.IDMARCA = MARCHE.ID JOIN CATEGORIE ON PRODOTTI.IDCATEGORIA = CATEGORIE.ID");
- try {
- PreparedStatement ps = (PreparedStatement) conn.prepareStatement(query);
- ResultSet rs = ps.executeQuery();
- while(rs.next()) {
- Dto dto = new Dto(); //genera nuovo prodotto da inserirei nell'arraylist
- dto.setId_prodotto(rs.getInt("ID"));
- dto.setNome_prodotto(rs.getString("NOMEPRODOTTO"));
- dto.setDescrizione(rs.getString("DESCRIZIONI"));
- dto.setPercorso_immagine(rs.getString("LINKIMMAGINE"));
- dto.setNome_marca(rs.getString("NOMEMARCA"));
- dto.setNome_categoria(rs.getString("NOMECATEGORIA"));
- tabellaDto.add(dto); //aggiunge
- }
- ps.close();
- rs.close();
- } catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- return tabellaDto;
- }
- public ArrayList<Prodotto> leggiConProcedura(){
- apriConnessione();
- CallableStatement cst;
- String query = "{call leggiProdotti(?)}";
- try {
- cst = (CallableStatement) conn.prepareCall(query);
- cst.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
- cst.execute();
- ResultSet rs = (ResultSet) cst.getObject(1);
- while(rs.next()) {
- Prodotto p = new Prodotto();
- p.setId_prodotto(rs.getInt("ID"));
- p.setDescrizione(rs.getString("DESCRIZIONE"));
- p.setPercorso_immagine(rs.getString("LINKIMMAGINE"));
- p.setId_marca(rs.getInt("IDMARCA"));
- p.setId_categoria(rs.getInt("IDCATEGORIA"));
- tabellaProdotti.add(p); //aggiunge
- }
- cst.close();
- rs.close();
- }catch(SQLException e) {
- e.printStackTrace();
- }
- chiudiConnessione();
- return tabellaProdotti;
- }
- public DaoProdotto(){
- }
- }
Add Comment
Please, Sign In to add comment