java/SuperPostak/src/cz/frantovo/superPostak/DataSQL.java
author František Kučera <franta-hg@frantovo.cz>
Sun, 23 Nov 2008 22:19:20 +0100
changeset 0 e76872ad5226
child 3 03d27d3b3f7b
permissions -rw-r--r--
Přidání SuperPošťáka do Mercurialu (původně byl v Subversionu)
Postak – základ, knihovna
SuperPostak – GUI nadstavba
SuperPostak2 – pokus o implementaci aplikace jako modulu pro Netbeans, POZOR: není přidán do Mercurialu, možná později (pravděpodobně se ale nebude používat)
     1 /*
     2  * To change this template, choose Tools | Templates
     3  * and open the template in the editor.
     4  */
     5 package cz.frantovo.superPostak;
     6 
     7 import cz.frantovo.postak.InternetAddressKomu;
     8 import java.io.UnsupportedEncodingException;
     9 import java.sql.Connection;
    10 import java.sql.PreparedStatement;
    11 import java.sql.ResultSet;
    12 import java.sql.SQLException;
    13 import java.util.ArrayList;
    14 import java.util.Collection;
    15 import java.util.logging.Level;
    16 import java.util.logging.Logger;
    17 
    18 /**
    19  * Třída pro vykonávání SQL dotazů
    20  * @author fiki
    21  */
    22 public class DataSQL {
    23 
    24     private static Logger log = Logger.getLogger(DataSQL.class.getName());
    25     private Connection spojeni;
    26 
    27     public DataSQL(Connection spojeni) {
    28         this.spojeni = spojeni;
    29     }
    30 
    31     /**
    32      * Provede SQL příkaz a získá z něj e-mailové adresy.
    33      * Zatím předpokládá pouze jediný sloupec, který obsahuje adresu.
    34      */
    35     public Collection<InternetAddressKomu> getAdresy(String sql) throws SQLException, UnsupportedEncodingException {
    36         ArrayList<InternetAddressKomu> vysledek = new ArrayList<InternetAddressKomu>();
    37 
    38         if (sql == null || sql.length() < 3) {
    39             log.log(Level.FINER, "Prázdný SQL dotaz");
    40             return null;
    41         } else {
    42             PreparedStatement ps = spojeni.prepareStatement(sql);
    43             ResultSet rs = ps.executeQuery();
    44             while (rs.next()) {
    45                 vysledek.add(new InternetAddressKomu(rs.getString(1), rs.getString(1)));
    46             }
    47             return vysledek;
    48         }
    49     }
    50 }