Přestavba EJB, pročištění starých ukázek, web.
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 <![CDATA[ … ]]>.
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}"/>&#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">