Chi vuol essere informatico - Jdb.java
Cerca
 











Jdb.java

Caricato da: Bonny
Scarica il programma completo

  1. package quizzone;
  2. import java.awt.Font;
  3. import java.sql.*;
  4. import javax.swing.*;
  5.  
  6. public class Jdb {
  7.  
  8.     private String url = "jdbc:odbc:Mydb";
  9.     private Connection con;
  10.     private Statement stmt;
  11.     private ResultSet rs;
  12.    
  13.         //Apre connessione al db
  14.     public Jdb() {
  15.         try {
  16.             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  17.         } catch (ClassNotFoundException ex) {
  18.             System.err.print("SQLException: ");
  19.             System.err.println("Connessione database fallita.\n" + ex.getMessage());
  20.         }
  21.     }
  22.     //estrae dal db un record per volta, lo divide e crea e restituisce un array di string
  23.     public String[] estrai(int indice) {
  24.  
  25.         String[] q = new String[6];
  26.  
  27.         String sql = "SELECT ID,domanda,prima,seconda,terza,quarta,giusta FROM Quesiti WHERE ID=" + indice;
  28.  
  29.         try {
  30.             con = DriverManager.getConnection(url);
  31.             stmt = con.createStatement();
  32.             rs = stmt.executeQuery(sql);
  33.             rs.next();
  34.             q[0] = rs.getString("domanda");
  35.             q[1] = rs.getString("prima");
  36.             q[2] = rs.getString("seconda");
  37.             q[3] = rs.getString("terza");
  38.             q[4] = rs.getString("quarta");
  39.             q[5] = rs.getString("giusta");
  40.             con.close();
  41.         } catch (SQLException ex) {
  42.             System.err.print("SQLException: ");
  43.             System.err.println("Impossibile eseguire la query.\n " + ex.getMessage());
  44.         }
  45.  
  46.         return q;
  47.     }
  48.     //inserisce nella tabella classifica il nome e il punteggio del concorrente
  49.     public void insert(String n, int p) {
  50.         try {
  51.             con = DriverManager.getConnection(url);
  52.             stmt = con.createStatement();
  53.             stmt.executeUpdate("INSERT INTO classifica (nome,punteggio) VALUES ('" + n + "','" + p + "')");
  54.             con.close();
  55.         } catch (SQLException ex) {
  56.             System.err.print("SQLException: ");
  57.             System.err.println("Impossibile eseguire la query.\n " + ex.getMessage());
  58.         }
  59.     }
  60.     //estrae nome e punteggio di tutti i giocatori ordinandoli in ordine decrescente
  61.         //comando sql "ORDER BY nomecolonna ASC | DESC"  crea un JTable con i primi 10
  62.         // che hanno totalizzato il punteggio pi� alto
  63.     public JPanel visualizza() {
  64.  
  65.         JPanel p = new JPanel();
  66.         JTable t;
  67.         String[] col = {"Nome", "Punteggio"};
  68.         Object row[][] = new Object[10][2];
  69.         int i = 0;
  70.  
  71.         try {
  72.             con = DriverManager.getConnection(url);
  73.             stmt = con.createStatement();
  74.             rs = stmt.executeQuery("SELECT nome,punteggio FROM classifica ORDER BY punteggio DESC");
  75.  
  76.             while (rs.next() && i < 10) {
  77.  
  78.                 row[i][0] = rs.getString("nome");
  79.                 row[i][1] = rs.getString("punteggio");
  80.                 i++;
  81.             }
  82.  
  83.             con.close();
  84.         } catch (SQLException ex) {
  85.             System.err.print("SQLException: ");
  86.             System.err.println("Impossibile eseguire la query.\n " + ex.getMessage());
  87.         }
  88.  
  89.         t = new JTable(row, col);
  90.         t.setFont(new Font("Arial", Font.PLAIN, 14));  
  91.         t.setFillsViewportHeight(true);
  92.         JScrollPane scrollPane = new JScrollPane(t);
  93.         p.add(scrollPane);
  94.  
  95.         return p;
  96.     }
  97. }
 

Creative Commons License
Il layout di questo sito è concesso sotto licenza Creative Commons.
Per maggiori informazioni sulle licenze dei contenuti del sito, clicca.