Přestavba EJB, pročištění starých ukázek, web.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Thu, 25 Feb 2010 02:41:57 +0100
changeset 39ea342cf8c15a
parent 38 a2ca6c1804d1
child 40 67d332d48562
Přestavba EJB, pročištění starých ukázek, web.
java/nekurak.net-ejb/src/conf/MANIFEST.MF
java/nekurak.net-ejb/src/conf/Podnik.hbm.xml
java/nekurak.net-ejb/src/conf/beans.xml
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikHibernateDAO.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikDAORemote.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikHibernateDAORemote.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java
java/nekurak.net-web/nbproject/build-impl.xml
java/nekurak.net-web/nbproject/genfiles.properties
java/nekurak.net-web/nbproject/project.properties
java/nekurak.net-web/nbproject/project.xml
java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/NekurakSuperDAO.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/NekurakSuperDAO.xml
java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml
java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/PodnikRowMapper.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/HledacSluzby.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PodnikyHibernateWeb.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PodnikyWeb.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Uvod.java
java/nekurak.net-web/src/java/cz/frantovo/superDAO/SuperDAO.java
java/nekurak.net-web/src/java/cz/frantovo/superDAO/SuperDAO.sql.xml
java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp
java/nekurak.net-web/web/index.jsp
     1.1 --- a/java/nekurak.net-ejb/src/conf/MANIFEST.MF	Wed Feb 24 21:48:49 2010 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,2 +0,0 @@
     1.4 -Manifest-Version: 1.0
     1.5 -
     2.1 --- a/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml	Wed Feb 24 21:48:49 2010 +0100
     2.2 +++ b/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml	Thu Feb 25 02:41:57 2010 +0100
     2.3 @@ -5,5 +5,11 @@
     2.4      <class name="cz.frantovo.nekurak.dto.Podnik" table="podnik">
     2.5  	<id name="id" column="id" type="integer"/>
     2.6  	<property name="nazev" column="nazev"/>
     2.7 +	<property name="popis" column="popis"/>
     2.8 +	<property name="url" column="url"/>
     2.9 +	<property name="datum" column="datum"/>
    2.10 +	<property name="ulice" column="ulice"/>
    2.11 +	<property name="cisloPopisne" column="cislo_popisne"/>
    2.12 +	<property name="mesto" column="mesto"/>
    2.13      </class>
    2.14  </hibernate-mapping>
    2.15 \ No newline at end of file
     3.1 --- a/java/nekurak.net-ejb/src/conf/beans.xml	Wed Feb 24 21:48:49 2010 +0100
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,5 +0,0 @@
     3.4 -<?xml version="1.0" encoding="UTF-8"?>
     3.5 -<beans xmlns="http://java.sun.com/xml/ns/javaee"
     3.6 -       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3.7 -       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
     3.8 -</beans>
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Thu Feb 25 02:41:57 2010 +0100
     4.3 @@ -0,0 +1,32 @@
     4.4 +package cz.frantovo.nekurak.dao;
     4.5 +
     4.6 +import cz.frantovo.nekurak.dto.Podnik;
     4.7 +import cz.frantovo.nekurak.ejb.PodnikDAORemote;
     4.8 +import java.util.Collection;
     4.9 +import javax.ejb.LocalBean;
    4.10 +import javax.ejb.Stateless;
    4.11 +import javax.persistence.EntityManager;
    4.12 +import javax.persistence.PersistenceContext;
    4.13 +import javax.persistence.Query;
    4.14 +
    4.15 +/**
    4.16 + *
    4.17 + * @author fiki
    4.18 + */
    4.19 +@Stateless
    4.20 +@LocalBean
    4.21 +public class PodnikDAO implements PodnikDAORemote {
    4.22 +
    4.23 +    private static final String PU = "nekurak.net-PU";
    4.24 +    @PersistenceContext(unitName = PU)
    4.25 +    private EntityManager em;
    4.26 +
    4.27 +    public Collection<Podnik> getPodniky() {
    4.28 +	Query dotaz = em.createQuery("FROM " + t(Podnik.class) + " o ORDER BY nazev");
    4.29 +	return dotaz.getResultList();
    4.30 +    }
    4.31 +
    4.32 +    private static String t(Class trida) {
    4.33 +	return trida.getSimpleName();
    4.34 +    }
    4.35 +}
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java	Thu Feb 25 02:41:57 2010 +0100
     5.3 @@ -0,0 +1,23 @@
     5.4 +package cz.frantovo.nekurak.ejb;
     5.5 +
     5.6 +import cz.frantovo.nekurak.dao.PodnikDAO;
     5.7 +import cz.frantovo.nekurak.dto.Podnik;
     5.8 +import java.util.Collection;
     5.9 +import javax.ejb.EJB;
    5.10 +import javax.ejb.Stateless;
    5.11 +
    5.12 +/**
    5.13 + *
    5.14 + * @author fiki
    5.15 + */
    5.16 +@Stateless
    5.17 +public class PodnikEJB implements PodnikRemote {
    5.18 +
    5.19 +    @EJB
    5.20 +    private PodnikDAO podnikDAO = new PodnikDAO();
    5.21 +
    5.22 +    public Collection<Podnik> getPodniky() {
    5.23 +	Collection<Podnik> vysledek = podnikDAO.getPodniky();
    5.24 +	return vysledek;
    5.25 +    }
    5.26 +}
     6.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikHibernateDAO.java	Wed Feb 24 21:48:49 2010 +0100
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,31 +0,0 @@
     6.4 -package cz.frantovo.nekurak.ejb;
     6.5 -
     6.6 -import cz.frantovo.nekurak.dto.Podnik;
     6.7 -import java.util.Collection;
     6.8 -import javax.ejb.Stateless;
     6.9 -import javax.persistence.EntityManager;
    6.10 -import javax.persistence.PersistenceContext;
    6.11 -import javax.persistence.Query;
    6.12 -
    6.13 -/**
    6.14 - *
    6.15 - * @author fiki
    6.16 - */
    6.17 -@Stateless
    6.18 -public class PodnikHibernateDAO implements PodnikHibernateDAORemote {
    6.19 -
    6.20 -    private static final String PU = "nekurak.net-PU";
    6.21 -
    6.22 -    @PersistenceContext(unitName = PU)
    6.23 -    private EntityManager em;
    6.24 -
    6.25 -    public Collection<Podnik> getPodniky() {
    6.26 -	Query dotaz = em.createQuery("FROM " + t(Podnik.class) + " o ORDER BY nazev");
    6.27 -        return dotaz.getResultList();
    6.28 -    }
    6.29 -
    6.30 -    
    6.31 -    private static String t(Class trida) {
    6.32 -        return trida.getSimpleName();
    6.33 -    }
    6.34 -}
     7.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java	Wed Feb 24 21:48:49 2010 +0100
     7.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java	Thu Feb 25 02:41:57 2010 +0100
     7.3 @@ -1,6 +1,7 @@
     7.4  package cz.frantovo.nekurak.dto;
     7.5  
     7.6  import java.io.Serializable;
     7.7 +import java.util.Date;
     7.8  
     7.9  /**
    7.10   *
    7.11 @@ -10,6 +11,12 @@
    7.12  
    7.13      private int id;
    7.14      private String nazev;
    7.15 +    private String popis;
    7.16 +    private String url;
    7.17 +    private String ulice;
    7.18 +    private Date datum;
    7.19 +    private int cisloPopisne;
    7.20 +    private String mesto;
    7.21  
    7.22      public Podnik() {
    7.23      }
    7.24 @@ -35,4 +42,51 @@
    7.25  	this.nazev = nazev;
    7.26      }
    7.27  
    7.28 +    public String getPopis() {
    7.29 +	return popis;
    7.30 +    }
    7.31 +
    7.32 +    public void setPopis(String popis) {
    7.33 +	this.popis = popis;
    7.34 +    }
    7.35 +
    7.36 +    public String getUrl() {
    7.37 +	return url;
    7.38 +    }
    7.39 +
    7.40 +    public void setUrl(String url) {
    7.41 +	this.url = url;
    7.42 +    }
    7.43 +
    7.44 +    public String getUlice() {
    7.45 +	return ulice;
    7.46 +    }
    7.47 +
    7.48 +    public void setUlice(String ulice) {
    7.49 +	this.ulice = ulice;
    7.50 +    }
    7.51 +
    7.52 +    public Date getDatum() {
    7.53 +	return datum;
    7.54 +    }
    7.55 +
    7.56 +    public void setDatum(Date datum) {
    7.57 +	this.datum = datum;
    7.58 +    }
    7.59 +
    7.60 +    public int getCisloPopisne() {
    7.61 +	return cisloPopisne;
    7.62 +    }
    7.63 +
    7.64 +    public void setCisloPopisne(int cisloPopisne) {
    7.65 +	this.cisloPopisne = cisloPopisne;
    7.66 +    }
    7.67 +
    7.68 +    public String getMesto() {
    7.69 +	return mesto;
    7.70 +    }
    7.71 +
    7.72 +    public void setMesto(String mesto) {
    7.73 +	this.mesto = mesto;
    7.74 +    }
    7.75  }
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikDAORemote.java	Thu Feb 25 02:41:57 2010 +0100
     8.3 @@ -0,0 +1,11 @@
     8.4 +package cz.frantovo.nekurak.ejb;
     8.5 +
     8.6 +import cz.frantovo.nekurak.dto.Podnik;
     8.7 +import java.util.Collection;
     8.8 +import javax.ejb.Remote;
     8.9 +
    8.10 +@Remote
    8.11 +public interface PodnikDAORemote {
    8.12 +
    8.13 +    public Collection<Podnik> getPodniky();
    8.14 +}
     9.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikHibernateDAORemote.java	Wed Feb 24 21:48:49 2010 +0100
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,16 +0,0 @@
     9.4 -package cz.frantovo.nekurak.ejb;
     9.5 -
     9.6 -import cz.frantovo.nekurak.dto.Podnik;
     9.7 -import java.util.Collection;
     9.8 -import javax.ejb.Remote;
     9.9 -
    9.10 -/**
    9.11 - *
    9.12 - * @author fiki
    9.13 - */
    9.14 -@Remote
    9.15 -public interface PodnikHibernateDAORemote {
    9.16 -
    9.17 -    public Collection<Podnik> getPodniky();
    9.18 -    
    9.19 -}
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java	Thu Feb 25 02:41:57 2010 +0100
    10.3 @@ -0,0 +1,16 @@
    10.4 +package cz.frantovo.nekurak.ejb;
    10.5 +
    10.6 +import cz.frantovo.nekurak.dto.Podnik;
    10.7 +import java.util.Collection;
    10.8 +import javax.ejb.Remote;
    10.9 +
   10.10 +/**
   10.11 + *
   10.12 + * @author fiki
   10.13 + */
   10.14 +@Remote
   10.15 +public interface PodnikRemote {
   10.16 +
   10.17 +    public Collection<Podnik> getPodniky();
   10.18 +    
   10.19 +}
    11.1 --- a/java/nekurak.net-web/nbproject/build-impl.xml	Wed Feb 24 21:48:49 2010 +0100
    11.2 +++ b/java/nekurak.net-web/nbproject/build-impl.xml	Thu Feb 25 02:41:57 2010 +0100
    11.3 @@ -535,13 +535,11 @@
    11.4      </target>
    11.5      <target depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest" name="do-dist"/>
    11.6      <target depends="init" if="dist.ear.dir" name="library-inclusion-in-manifest">
    11.7 -        <copyfiles files="${libs.spring-framework.classpath}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
    11.8          <copyfiles files="${reference.nekurak_net-lib.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
    11.9          <mkdir dir="${build.web.dir}/META-INF"/>
   11.10          <manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/>
   11.11      </target>
   11.12      <target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir">
   11.13 -        <copyfiles files="${libs.spring-framework.classpath}" todir="${build.web.dir}/WEB-INF/lib"/>
   11.14          <copyfiles files="${reference.nekurak_net-lib.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
   11.15      </target>
   11.16      <target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
    12.1 --- a/java/nekurak.net-web/nbproject/genfiles.properties	Wed Feb 24 21:48:49 2010 +0100
    12.2 +++ b/java/nekurak.net-web/nbproject/genfiles.properties	Thu Feb 25 02:41:57 2010 +0100
    12.3 @@ -3,6 +3,6 @@
    12.4  build.xml.stylesheet.CRC32=c0ebde35@1.21.2.1
    12.5  # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
    12.6  # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
    12.7 -nbproject/build-impl.xml.data.CRC32=017e6ccf
    12.8 -nbproject/build-impl.xml.script.CRC32=c30cc1f7
    12.9 +nbproject/build-impl.xml.data.CRC32=84da1c7b
   12.10 +nbproject/build-impl.xml.script.CRC32=6cc41288
   12.11  nbproject/build-impl.xml.stylesheet.CRC32=b139b33b@1.21.2.1
    13.1 --- a/java/nekurak.net-web/nbproject/project.properties	Wed Feb 24 21:48:49 2010 +0100
    13.2 +++ b/java/nekurak.net-web/nbproject/project.properties	Thu Feb 25 02:41:57 2010 +0100
    13.3 @@ -26,7 +26,6 @@
    13.4  j2ee.server.type=gfv3ee6
    13.5  jar.compress=false
    13.6  javac.classpath=\
    13.7 -    ${libs.spring-framework.classpath}:\
    13.8      ${reference.nekurak_net-lib.jar}
    13.9  # Space-separated list of extra javac options
   13.10  javac.compilerargs=
    14.1 --- a/java/nekurak.net-web/nbproject/project.xml	Wed Feb 24 21:48:49 2010 +0100
    14.2 +++ b/java/nekurak.net-web/nbproject/project.xml	Thu Feb 25 02:41:57 2010 +0100
    14.3 @@ -7,10 +7,6 @@
    14.4              <minimum-ant-version>1.6.5</minimum-ant-version>
    14.5              <web-module-libraries>
    14.6                  <library dirs="200">
    14.7 -                    <file>${libs.spring-framework.classpath}</file>
    14.8 -                    <path-in-war>WEB-INF/lib</path-in-war>
    14.9 -                </library>
   14.10 -                <library dirs="200">
   14.11                      <file>${reference.nekurak_net-lib.jar}</file>
   14.12                      <path-in-war>WEB-INF/lib</path-in-war>
   14.13                  </library>
    15.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/NekurakSuperDAO.java	Wed Feb 24 21:48:49 2010 +0100
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,43 +0,0 @@
    15.4 -package cz.frantovo.nekurak.dao;
    15.5 -
    15.6 -import cz.frantovo.superDAO.SuperDAO;
    15.7 -import java.util.logging.Level;
    15.8 -import javax.naming.InitialContext;
    15.9 -import javax.naming.NamingException;
   15.10 -import javax.sql.DataSource;
   15.11 -
   15.12 -/**
   15.13 - *
   15.14 - * @author fiki
   15.15 - */
   15.16 -public class NekurakSuperDAO extends SuperDAO {
   15.17 -
   15.18 -    protected InitialContext kontext = null;
   15.19 -
   15.20 -    protected enum DATABAZE {
   15.21 -
   15.22 -	/** Aplikace by mohla pracovat s více datovými zdroji. */
   15.23 -	VYCHOZI
   15.24 -    }
   15.25 -
   15.26 -    public NekurakSuperDAO() {
   15.27 -	try {
   15.28 -	    kontext = new InitialContext();
   15.29 -	} catch (NamingException ex) {
   15.30 -	    log.log(Level.SEVERE, "Chyba při inicializaci kontextu", ex);
   15.31 -	}
   15.32 -    }
   15.33 -
   15.34 -    /**
   15.35 -     * @return Datový zdroj nebo null při chybě.
   15.36 -     */
   15.37 -    protected DataSource getSpojeni() {
   15.38 -	String jndi = orizni(getVlastnost(DATABAZE.VYCHOZI, NekurakSuperDAO.class));
   15.39 -	try {
   15.40 -	    return (DataSource) kontext.lookup(jndi);
   15.41 -	} catch (NamingException ex) {
   15.42 -	    log.log(Level.SEVERE, "getSpojeni: lookup", ex);
   15.43 -	    return null;
   15.44 -	}
   15.45 -    }
   15.46 -}
    16.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/NekurakSuperDAO.xml	Wed Feb 24 21:48:49 2010 +0100
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,7 +0,0 @@
    16.4 -<?xml version="1.0" encoding="UTF-8"?>
    16.5 -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    16.6 -<properties>
    16.7 -    <!-- Aplikace by mohla pracovat s více datovými zdroji. -->
    16.8 -    <entry key="VYCHOZI">jdbc/nekurak</entry>
    16.9 -    <!-- Poznámka: Přemapování JNDI jmen můžeme provádět i v souboru sun-web.xml pomocí <resource-ref> -->
   16.10 -</properties>
   16.11 \ No newline at end of file
    17.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Wed Feb 24 21:48:49 2010 +0100
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,41 +0,0 @@
    17.4 -package cz.frantovo.nekurak.dao;
    17.5 -
    17.6 -import cz.frantovo.nekurak.dto.Podnik;
    17.7 -import java.util.Collection;
    17.8 -import org.springframework.jdbc.core.JdbcTemplate;
    17.9 -
   17.10 -/**
   17.11 - * Stará se o načítání a ukládání podniků (hospod) z a do databáze.
   17.12 - * @author fiki
   17.13 - */
   17.14 -public class PodnikDAO extends NekurakSuperDAO {
   17.15 -
   17.16 -    private enum SQL {
   17.17 -
   17.18 -	SELECT_VSECHNY,
   17.19 -	INSERT,
   17.20 -	UPDATE,
   17.21 -	NEXTVAL
   17.22 -    }
   17.23 -    private PodnikRowMapper podnikRowMapper = new PodnikRowMapper();
   17.24 -    private JdbcTemplate jdbcTemplate = new JdbcTemplate(getSpojeni());
   17.25 -
   17.26 -    public Collection<Podnik> getPodniky() {
   17.27 -	return jdbcTemplate.query(getSQL(SQL.SELECT_VSECHNY), podnikRowMapper);
   17.28 -    }
   17.29 -
   17.30 -    /**
   17.31 -     * Uloží podnik do databáze.
   17.32 -     * @param p Podnik k uložení. Pokud má být vložen nový, má id = 0.
   17.33 -     * @return id vloženého nebo uloženého podniku.
   17.34 -     */
   17.35 -    public int ulozPodnik(Podnik p) {
   17.36 -	if (p.getId() == 0) {
   17.37 -	    p.setId(jdbcTemplate.queryForInt(getSQL(SQL.NEXTVAL)));
   17.38 -	    jdbcTemplate.update(getSQL(SQL.INSERT), new Object[]{p.getNazev(), p.getId()});
   17.39 -	} else {
   17.40 -	    jdbcTemplate.update(getSQL(SQL.UPDATE), new Object[]{p.getNazev(), p.getId()});
   17.41 -	}
   17.42 -	return p.getId();
   17.43 -    }
   17.44 -}
    18.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml	Wed Feb 24 21:48:49 2010 +0100
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,27 +0,0 @@
    18.4 -<?xml version="1.0" encoding="UTF-8"?>
    18.5 -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    18.6 -<properties>
    18.7 -    <entry key="SELECT_VSECHNY">
    18.8 -	<![CDATA[
    18.9 -	SELECT * FROM podnik;
   18.10 -	]]>
   18.11 -    </entry>
   18.12 -    <entry key="INSERT">
   18.13 -	<![CDATA[
   18.14 -	INSERT INTO podnik (nazev, id)
   18.15 -	VALUES (?, ?);
   18.16 -	]]>
   18.17 -    </entry>
   18.18 -    <entry key="UPDATE">
   18.19 -	<![CDATA[
   18.20 -	UPDATE podnik
   18.21 -	SET nazev = ?
   18.22 -	WHERE id = ?
   18.23 -	]]>
   18.24 -    </entry>
   18.25 -    <entry key="NEXTVAL">
   18.26 -	<![CDATA[
   18.27 -	SELECT nextval('podnik_seq');
   18.28 -	]]>
   18.29 -    </entry>
   18.30 -</properties>
   18.31 \ No newline at end of file
    19.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dao/PodnikRowMapper.java	Wed Feb 24 21:48:49 2010 +0100
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,21 +0,0 @@
    19.4 -package cz.frantovo.nekurak.dao;
    19.5 -
    19.6 -import cz.frantovo.nekurak.dto.Podnik;
    19.7 -import java.sql.ResultSet;
    19.8 -import java.sql.SQLException;
    19.9 -import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
   19.10 -
   19.11 -/**
   19.12 - *
   19.13 - * @author fiki
   19.14 - */
   19.15 -public class PodnikRowMapper implements ParameterizedRowMapper<Podnik> {
   19.16 -
   19.17 -    public Podnik mapRow(ResultSet rs, int i) throws SQLException {
   19.18 -	Podnik p = new Podnik();
   19.19 -	p.setId(rs.getInt("id"));
   19.20 -	p.setNazev(rs.getString("nazev"));
   19.21 -	return p;
   19.22 -    }
   19.23 -
   19.24 -}
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/HledacSluzby.java	Thu Feb 25 02:41:57 2010 +0100
    20.3 @@ -0,0 +1,33 @@
    20.4 +package cz.frantovo.nekurak.web;
    20.5 +
    20.6 +import cz.frantovo.nekurak.ejb.PodnikDAORemote;
    20.7 +import cz.frantovo.nekurak.ejb.PodnikRemote;
    20.8 +import java.io.Serializable;
    20.9 +import java.util.logging.Level;
   20.10 +import java.util.logging.Logger;
   20.11 +import javax.naming.Context;
   20.12 +import javax.naming.InitialContext;
   20.13 +import javax.naming.NamingException;
   20.14 +
   20.15 +/**
   20.16 + *
   20.17 + * @author fiki
   20.18 + */
   20.19 +public class HledacSluzby implements Serializable {
   20.20 +
   20.21 +    private PodnikRemote podnikEJB;
   20.22 +    private static final Logger log = Logger.getLogger(HledacSluzby.class.getSimpleName());
   20.23 +
   20.24 +    public PodnikRemote getPodnikEJB() {
   20.25 +	if (podnikEJB == null) {
   20.26 +	    try {
   20.27 +		Context c = new InitialContext();
   20.28 +		podnikEJB = (PodnikRemote) c.lookup("cz.frantovo.nekurak.ejb.PodnikRemote");
   20.29 +	    } catch (NamingException e) {
   20.30 +		log.log(Level.SEVERE, "Chyba při hledání PodnikRemote", e);
   20.31 +		throw new RuntimeException(e);
   20.32 +	    }
   20.33 +	}
   20.34 +	return podnikEJB;
   20.35 +    }
   20.36 +}
    21.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PodnikyHibernateWeb.java	Wed Feb 24 21:48:49 2010 +0100
    21.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3 @@ -1,38 +0,0 @@
    21.4 -package cz.frantovo.nekurak.web;
    21.5 -
    21.6 -import cz.frantovo.nekurak.dto.Podnik;
    21.7 -import cz.frantovo.nekurak.ejb.PodnikHibernateDAORemote;
    21.8 -import java.io.Serializable;
    21.9 -import java.util.Collection;
   21.10 -import java.util.logging.Level;
   21.11 -import java.util.logging.Logger;
   21.12 -import javax.naming.Context;
   21.13 -import javax.naming.InitialContext;
   21.14 -import javax.naming.NamingException;
   21.15 -
   21.16 -/**
   21.17 - *
   21.18 - * @author fiki
   21.19 - */
   21.20 -public class PodnikyHibernateWeb implements Serializable {
   21.21 -
   21.22 -    private PodnikHibernateDAORemote podnikDAO;
   21.23 -    private static final Logger log = Logger.getLogger(PodnikyHibernateWeb.class.getSimpleName());
   21.24 -
   21.25 -    public Collection<Podnik> getPodniky() {
   21.26 -	return lookupCilDAO().getPodniky();
   21.27 -    }
   21.28 -
   21.29 -    private PodnikHibernateDAORemote lookupCilDAO() {
   21.30 -	if (podnikDAO == null) {
   21.31 -	    try {
   21.32 -		Context c = new InitialContext();
   21.33 -		podnikDAO = (PodnikHibernateDAORemote) c.lookup("cz.frantovo.nekurak.ejb.PodnikHibernateDAORemote");
   21.34 -	    } catch (NamingException e) {
   21.35 -		log.log(Level.SEVERE, "Chyba při hledání PodnikHibernateDAO", e);
   21.36 -		throw new RuntimeException(e);
   21.37 -	    }
   21.38 -	}
   21.39 -	return podnikDAO;
   21.40 -    }
   21.41 -}
    22.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PodnikyWeb.java	Wed Feb 24 21:48:49 2010 +0100
    22.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3 @@ -1,19 +0,0 @@
    22.4 -package cz.frantovo.nekurak.web;
    22.5 -
    22.6 -import cz.frantovo.nekurak.dao.PodnikDAO;
    22.7 -import cz.frantovo.nekurak.dto.Podnik;
    22.8 -import java.io.Serializable;
    22.9 -import java.util.Collection;
   22.10 -
   22.11 -/**
   22.12 - *
   22.13 - * @author fiki
   22.14 - */
   22.15 -public class PodnikyWeb implements Serializable {
   22.16 -
   22.17 -    private PodnikDAO dao = new PodnikDAO();
   22.18 -
   22.19 -    public Collection<Podnik> getPodniky() {
   22.20 -	return dao.getPodniky();
   22.21 -    }
   22.22 -}
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Uvod.java	Thu Feb 25 02:41:57 2010 +0100
    23.3 @@ -0,0 +1,17 @@
    23.4 +package cz.frantovo.nekurak.web;
    23.5 +
    23.6 +import cz.frantovo.nekurak.dto.Podnik;
    23.7 +import java.util.Collection;
    23.8 +
    23.9 +/**
   23.10 + *
   23.11 + * @author fiki
   23.12 + */
   23.13 +public class Uvod {
   23.14 +
   23.15 +    private HledacSluzby hledac = new HledacSluzby();
   23.16 +
   23.17 +    public Collection<Podnik> getPodniky() {
   23.18 +	return hledac.getPodnikEJB().getPodniky();
   23.19 +    }
   23.20 +}
    24.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/superDAO/SuperDAO.java	Wed Feb 24 21:48:49 2010 +0100
    24.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.3 @@ -1,175 +0,0 @@
    24.4 -package cz.frantovo.superDAO;
    24.5 -
    24.6 -import java.io.InputStream;
    24.7 -import java.sql.Connection;
    24.8 -import java.sql.ResultSet;
    24.9 -import java.sql.Statement;
   24.10 -import java.util.Collections;
   24.11 -import java.util.HashMap;
   24.12 -import java.util.Map;
   24.13 -import java.util.Properties;
   24.14 -import java.util.logging.Level;
   24.15 -import java.util.logging.Logger;
   24.16 -
   24.17 -/**
   24.18 - * Předek všech DTOček
   24.19 - * @author fiki http://hg.frantovo.cz/SuperDAO/
   24.20 - */
   24.21 -public class SuperDAO {
   24.22 -
   24.23 -    protected Logger log = Logger.getLogger(getClass().getName());
   24.24 -    private static Map<Class, Properties> sql = Collections.synchronizedMap(new HashMap<Class, Properties>());
   24.25 -    private static Map<Class, Properties> vlastnosti = Collections.synchronizedMap(new HashMap<Class, Properties>());
   24.26 -
   24.27 -    private enum VLASTNOSTI {
   24.28 -
   24.29 -	AHOJ
   24.30 -    }
   24.31 -
   24.32 -    /**
   24.33 -     * Načítá SQL dotazy ze souboru, který se jmenuje stejně jako třída a má příponu sql.xml
   24.34 -     * Do těchto souborů patří pouze SQL dotazy - všechny ostatní parametry dáme do .xml souboru.
   24.35 -     * <p><strong>Pozor</strong> na použití v <em>protected</em> metodách, které mohou být volány z potomků –
   24.36 -     * pak se použije XML soubor daného potomka a ne XML soubor třídy, ve které se <em>protected</em> metoda nachází.
   24.37 -     * V takovém případě je potřeba použít parametr <em>trida</em></p>
   24.38 -     * @param klic Enum konstnanta z dané třídy
   24.39 -     * @param trida třída, jejíž XML soubor budeme hledat.
   24.40 -     * @return SQL dotaz nebo null v případě chyby
   24.41 -     */
   24.42 -    protected String getSQL(Enum klic, Class trida) {
   24.43 -	return getHodnota(sql, "sql.xml", klic, trida);
   24.44 -    }
   24.45 -
   24.46 -    /**
   24.47 -     * @see getSQL(Enum klic, Class trida)
   24.48 -     */
   24.49 -    protected String getSQL(Enum klic) {
   24.50 -	return getSQL(klic, null);
   24.51 -    }
   24.52 -
   24.53 -    /**
   24.54 -     * Načítá textové hodnoty (vlastnosti) ze souboru, který se jmenuje stejně jako třída a má příponu xml
   24.55 -     * Sem patří všechny parametry tříd kromě SQL dotazů.
   24.56 -     * <p><strong>Pozor</strong> na použití v <code>protected</code> metodách, které mohou být volány z potomků –
   24.57 -     * pak se použije XML soubor daného potomka a ne XML soubor třídy, ve které se <code>protected</code> metoda nachází.
   24.58 -     * V takovém případě je potřeba použít parametr <code>trida</code></p>
   24.59 -     * @param klic Enum konstnanta z dané třídy
   24.60 -     * @param trida třída, jejíž XML soubor budeme hledat.
   24.61 -     * @return textová hodnota nebo null v případě chyby
   24.62 -     */
   24.63 -    protected String getVlastnost(Enum klic, Class trida) {
   24.64 -	return getHodnota(vlastnosti, "xml", klic, trida);
   24.65 -    }
   24.66 -
   24.67 -    /**
   24.68 -     * @see getVlastnost(Enum klic, Class trida)
   24.69 -     */
   24.70 -    protected String getVlastnost(Enum klic) {
   24.71 -	return getVlastnost(klic, null);
   24.72 -    }
   24.73 -
   24.74 -    /**
   24.75 -     * Nečte hodnoty přímo ze souboru, ale snaží se je nejprve najít ve statické mezipaměti.
   24.76 -     * @param klic Enum konstnanta z dané třídy
   24.77 -     * @return textová hodnota nebo null v případě chyby
   24.78 -     */
   24.79 -    private String getHodnota(Map<Class, Properties> mezipamet, String pripona, Enum klic, Class trida) {
   24.80 -
   24.81 -	if (trida == null) {
   24.82 -	    trida = getClass();
   24.83 -	}
   24.84 -
   24.85 -	if (mezipamet.get(trida) == null) {
   24.86 -	    /** Ještě nemáme načteno ze souboru */
   24.87 -	    mezipamet.put(trida, getHodnoty(pripona, trida));
   24.88 -
   24.89 -	    if (mezipamet.get(trida) == null) {
   24.90 -		/** Došlo k chybě --> už to příště nebudeme zkoušet načítat */
   24.91 -		mezipamet.put(trida, new Properties());
   24.92 -	    }
   24.93 -	}
   24.94 -
   24.95 -	return mezipamet.get(trida).getProperty(klic.toString());
   24.96 -    }
   24.97 -
   24.98 -    /**
   24.99 -     * Jen pro vyzkoušení, jak načítání XML funguje.
  24.100 -     * @param args prázdné
  24.101 -     */
  24.102 -    public static void main(String[] args) {
  24.103 -	System.out.println(new SuperDAO().getSQL(VLASTNOSTI.AHOJ));
  24.104 -    }
  24.105 -
  24.106 -    /**
  24.107 -     * Načte vlastnosti dané třídy z XML souboru.
  24.108 -     * Soubory se dávají do stejného balíčku jako třída, akorát mají jinou příponu.
  24.109 -     * @param pripona přípona souboru - obvykle "sql.xml" nebo "xml" (bez tečky)
  24.110 -     * @return načtené vlastnosti nebo null v případě chyby
  24.111 -     */
  24.112 -    private Properties getHodnoty(String pripona, Class trida) {
  24.113 -	String soubor = trida.getSimpleName() + "." + pripona;
  24.114 -
  24.115 -	try {
  24.116 -	    Properties hodnoty = new Properties();
  24.117 -	    InputStream fis = trida.getResourceAsStream(soubor);
  24.118 -	    hodnoty.loadFromXML(fis);
  24.119 -	    return hodnoty;
  24.120 -	} catch (Exception e) {
  24.121 -	    log.log(Level.SEVERE, "Chyba při načítání vlastností: " + soubor, e);
  24.122 -	    return null;
  24.123 -	}
  24.124 -    }
  24.125 -
  24.126 -    /**
  24.127 -     * Pokusí se zrušit transakci.
  24.128 -     * @param spojeni databázové spojení.
  24.129 -     */
  24.130 -    protected void rollback(Connection spojeni) {
  24.131 -	try {
  24.132 -	    spojeni.rollback();
  24.133 -	} catch (Exception e) {
  24.134 -	    log.log(Level.FINEST, "rollback se nezdařil", e);
  24.135 -	}
  24.136 -    }
  24.137 -
  24.138 -    /**
  24.139 -     * Zavře všechno
  24.140 -     * @param spojeni DB spojení
  24.141 -     * @param prikaz DB dotaz
  24.142 -     * @param vysledek DB výsledek
  24.143 -     */
  24.144 -    protected static void zavri(Connection spojeni, Statement prikaz, ResultSet vysledek) {
  24.145 -	if (vysledek != null) {
  24.146 -	    try {
  24.147 -		vysledek.close();
  24.148 -	    } catch (Exception e) {
  24.149 -	    }
  24.150 -	}
  24.151 -	if (prikaz != null) {
  24.152 -	    try {
  24.153 -		prikaz.close();
  24.154 -	    } catch (Exception e) {
  24.155 -	    }
  24.156 -	}
  24.157 -	if (spojeni != null) {
  24.158 -	    try {
  24.159 -		spojeni.close();
  24.160 -	    } catch (Exception e) {
  24.161 -	    }
  24.162 -	}
  24.163 -    }
  24.164 -
  24.165 -    /**
  24.166 -     * Vhodné pokud v XML používáme &lt;![CDATA[ … ]]&gt;.
  24.167 -     * (hodí se pro JNDI)
  24.168 -     * @param text původní řetězec načtený z XML souboru.
  24.169 -     * @return Text s oříznutými bílými znany nazačátku a nakonci.
  24.170 -     */
  24.171 -    public static String orizni(String text) {
  24.172 -	if (text == null) {
  24.173 -	    return null;
  24.174 -	} else {
  24.175 -	    return text.trim();
  24.176 -	}
  24.177 -    }
  24.178 -}
    25.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/superDAO/SuperDAO.sql.xml	Wed Feb 24 21:48:49 2010 +0100
    25.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.3 @@ -1,9 +0,0 @@
    25.4 -<?xml version="1.0" encoding="UTF-8"?>
    25.5 -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    25.6 -<properties>
    25.7 -    <entry key="AHOJ">
    25.8 -        <![CDATA[
    25.9 -        Tak co, jak to jde? ;-)
   25.10 -        ]]>
   25.11 -    </entry>
   25.12 -</properties>
   25.13 \ No newline at end of file
    26.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp	Wed Feb 24 21:48:49 2010 +0100
    26.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp	Thu Feb 25 02:41:57 2010 +0100
    26.3 @@ -2,8 +2,25 @@
    26.4  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    26.5  	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    26.6  	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    26.7 +	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    26.8  	  version="2.0">
    26.9  
   26.10 -    <p>Tady bude úvodní stránka.</p>
   26.11 +    <jsp:useBean id="uvod" class="cz.frantovo.nekurak.web.Uvod" scope="request"/>
   26.12 +
   26.13 +    <p>Naposledy přidané podniky:</p>
   26.14 +
   26.15 +    <c:forEach var="p" items="${uvod.podniky}">
   26.16 +	<h2><c:out value="${p.nazev}"/></h2>
   26.17 +	<p><c:out value="${p.popis}"/></p>
   26.18 +	<p>
   26.19 +	    Adresa:<br/>
   26.20 +	    <c:out value="${p.ulice}"/>&amp;#160;
   26.21 +	    <c:out value="${p.cisloPopisne}"/><br/>
   26.22 +	    <c:out value="${p.mesto}"/>
   26.23 +	</p>
   26.24 +	<c:if test="${p.url != null}">
   26.25 +	    <p><a href="${fn:escapeXml(p.url)}">www stránka</a></p>
   26.26 +	</c:if>
   26.27 +    </c:forEach>
   26.28  
   26.29  </jsp:root>
    27.1 --- a/java/nekurak.net-web/web/index.jsp	Wed Feb 24 21:48:49 2010 +0100
    27.2 +++ b/java/nekurak.net-web/web/index.jsp	Thu Feb 25 02:41:57 2010 +0100
    27.3 @@ -31,8 +31,8 @@
    27.4  
    27.5  		<ul id="nabidka">
    27.6  		    <li><a href="#">Úvod</a></li>
    27.7 -		    <li><a href="#">Lorem</a></li>
    27.8 -		    <li><a href="#">Ipsum</a></li>
    27.9 +		    <li><a href="#">Přidat podnik</a></li>
   27.10 +		    <li><a href="#">Přihlásit se</a></li>
   27.11  		</ul>
   27.12  
   27.13  		<div id="obsah">