java/SpringDemo1/SpringDemo1-ejb/src/java/cz/frantovo/springDemo1/dao/KnihaDAOjdbc.java
author František Kučera <franta-hg@frantovo.cz>
Wed, 10 Feb 2010 23:11:38 +0100
changeset 5 7cf0cbef2936
permissions -rw-r--r--
DAO v prostém JDBC – pro srovnání.
franta-hg@5
     1
package cz.frantovo.springDemo1.dao;
franta-hg@5
     2
franta-hg@5
     3
import cz.frantovo.springDemo1.KnihaDAOjdbcRemote;
franta-hg@5
     4
import cz.frantovo.springDemo1.dto.Kniha;
franta-hg@5
     5
import java.sql.Connection;
franta-hg@5
     6
import java.sql.PreparedStatement;
franta-hg@5
     7
import java.sql.ResultSet;
franta-hg@5
     8
import java.sql.Statement;
franta-hg@5
     9
import java.util.ArrayList;
franta-hg@5
    10
import java.util.Collection;
franta-hg@5
    11
import java.util.logging.Level;
franta-hg@5
    12
import java.util.logging.Logger;
franta-hg@5
    13
import javax.annotation.Resource;
franta-hg@5
    14
import javax.ejb.Stateless;
franta-hg@5
    15
import javax.sql.DataSource;
franta-hg@5
    16
franta-hg@5
    17
/**
franta-hg@5
    18
 *
franta-hg@5
    19
 * @author fiki
franta-hg@5
    20
 */
franta-hg@5
    21
@Stateless
franta-hg@5
    22
public class KnihaDAOjdbc implements KnihaDAOjdbcRemote {
franta-hg@5
    23
franta-hg@5
    24
    @Resource(mappedName = "jdbc/sqlVyuka/piskoviste")
franta-hg@5
    25
    private DataSource dataSource;
franta-hg@5
    26
    private static final Logger log = Logger.getLogger(KnihaDAOjdbc.class.getSimpleName());
franta-hg@5
    27
franta-hg@5
    28
    public Collection<Kniha> getKnihy() {
franta-hg@5
    29
	Collection<Kniha> vysledek = new ArrayList<Kniha>();
franta-hg@5
    30
	Connection db = null;
franta-hg@5
    31
	PreparedStatement ps = null;
franta-hg@5
    32
	ResultSet rs = null;
franta-hg@5
    33
	try {
franta-hg@5
    34
	    db = dataSource.getConnection();
franta-hg@5
    35
	    ps = db.prepareStatement("SELECT * FROM sbirka.kniha;");
franta-hg@5
    36
	    rs = ps.executeQuery();
franta-hg@5
    37
	    while (rs.next()) {
franta-hg@5
    38
		Kniha k = new Kniha();
franta-hg@5
    39
		k.setNazev(rs.getString("nazev"));
franta-hg@5
    40
		k.setAutor(rs.getInt("autor"));
franta-hg@5
    41
		k.setDatumAktualizace(rs.getDate("datum"));
franta-hg@5
    42
		k.setId(rs.getInt("id"));
franta-hg@5
    43
		k.setIsbn(rs.getString("isbn"));
franta-hg@5
    44
		k.setPocetStran(rs.getInt("pocet_stran"));
franta-hg@5
    45
		k.setRokVydani(rs.getInt("rok_vydani"));
franta-hg@5
    46
		vysledek.add(k);
franta-hg@5
    47
	    }
franta-hg@5
    48
	} catch (Exception e) {
franta-hg@5
    49
	    log.log(Level.SEVERE, "Chyba načítání knížek.", e);
franta-hg@5
    50
	    return null;
franta-hg@5
    51
	} finally {
franta-hg@5
    52
	    zavri(db, ps, rs);
franta-hg@5
    53
	}
franta-hg@5
    54
franta-hg@5
    55
	return vysledek;
franta-hg@5
    56
    }
franta-hg@5
    57
franta-hg@5
    58
    protected static void zavri(Connection spojeni, Statement prikaz, ResultSet vysledek) {
franta-hg@5
    59
	if (vysledek != null) {
franta-hg@5
    60
	    try {
franta-hg@5
    61
		vysledek.close();
franta-hg@5
    62
	    } catch (Exception e) {
franta-hg@5
    63
	    }
franta-hg@5
    64
	}
franta-hg@5
    65
	if (prikaz != null) {
franta-hg@5
    66
	    try {
franta-hg@5
    67
		prikaz.close();
franta-hg@5
    68
	    } catch (Exception e) {
franta-hg@5
    69
	    }
franta-hg@5
    70
	}
franta-hg@5
    71
	if (spojeni != null) {
franta-hg@5
    72
	    try {
franta-hg@5
    73
		spojeni.close();
franta-hg@5
    74
	    } catch (Exception e) {
franta-hg@5
    75
	    }
franta-hg@5
    76
	}
franta-hg@5
    77
    }
franta-hg@5
    78
}