1   package ch.ige.edossier.web.server.dao;
2   
3   import java.sql.*;
4   import org.apache.log4j.Logger;
5   import ch.ige.edossier.util.DBHelper;
6   import ch.ige.edossier.web.vo.TMTypeVO;
7   
8   /**
9    * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
10   * Data Access Objekt für die Tabelle TMTYPE
11   * <p>
12   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
13   * @author    Anita Rueegsegger, Marc Bouquet
14   * @version   $Id: TMTypeDAO.java,v 1.2 2004/10/22 01:58:34 bouquet Exp $
15   */
16  public class TMTypeDAO
17  {
18    // Attribute für Log4j-Logging
19    private static final Logger LOG = Logger.getLogger( TMTypeDAO.class );
20  
21    /**
22     * Selektiert einen Datensatz der Tabelle TMTYPE
23     * @param tmtypeId int Nummer zum selektieren des Datensatzes
24     * @throws SQLException Unerwarteter SQL-Fehler
25     * @return TMTypeVO Value-Object
26     */
27    public TMTypeVO select( int tmtypeId ) throws SQLException
28    {
29      Connection con = null;
30      PreparedStatement ps = null;
31      ResultSet rs = null;
32      String query = null;
33      TMTypeVO vo = null;
34  
35      try
36      {
37        query = getSelectStatement() + "where tmtype_id = ?";
38        con = DBHelper.getInstance().getEsolutionConnection();
39        ps = con.prepareStatement( query );
40        ps.setInt( 1, tmtypeId );
41        rs = ps.executeQuery();
42  
43        if( rs.next() )
44        {
45          vo = fillVO( rs );
46        }
47        return vo;
48      }
49      catch( SQLException sqlex )
50      {
51        LOG.debug( query + "\n" +
52                   " tmtypeId = <" + tmtypeId + "> \n" );
53        throw sqlex;
54      }
55      finally
56      {
57        DBHelper.getInstance().close( con, ps );
58      }
59    }
60  
61    //---------------------------------------------------------------------------
62    // private methods
63    //---------------------------------------------------------------------------
64  
65    /**
66     * Gibt das SQL-Statement für den select aller Attribute ohne where-Bedingngung zurück
67     * @return String Select-Statement
68     */
69    private String getSelectStatement()
70    {
71      return( "select tmtype_id, description, created_dat, changed_dat from edossier.tmtype " );
72    }
73  
74    /**
75     * Füllt einen Datensatz anhand des ResultSet
76     * @param rs ResultSet Gültiges resultSet
77     * @return TMTypeVO Value-Object
78     * @exception SQLException Unerwarteter SQL-Fehler oder Konvertierungsfehler
79     */
80    private TMTypeVO fillVO( ResultSet rs ) throws SQLException
81    {
82      TMTypeVO tmTypeVO = new TMTypeVO();
83      tmTypeVO.setTmtypeId( rs.getInt( "tmtype_id" ) );
84      tmTypeVO.setDescription( rs.getString( "description" ) );
85      tmTypeVO.setCreatedDat( rs.getDate( "created_dat" ) );
86      tmTypeVO.setChangedDat( rs.getDate( "changed_dat" ) );
87      return tmTypeVO;
88    }
89  }
90