tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
314
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    Hallo Jungs!

    Ich habe nun ein Problem mit Hibernate, zumindest glaube ich, dass es daran liegt:
    Es geht um die Geschwindigkeit (wohl eher Wartezeiten) bei jeder Aktion mit Hibernate... sei es saveOrUpdate(obj) oder delete(obj)!

    Die Datenbank (HSQLDB) besteht nur aus einer einzigen Tabelle mit vier Spalten.

    Mein DAO schaut so aus:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    import java.util.Collection;
     
    import org.springframework.orm.hibernate3.HibernateTemplate;
     
    public class UserDAOImpl extends HibernateTemplate implements UserDAO {
     
        public void saveUser(User user) {
            this.saveOrUpdate(user);
        }
     
        public void deleteUser(User user) {
            this.delete(user);
        }
     
        public Collection<User> findAllUsers() {
            return this.loadAll(User.class);
        }
     
    }

    Abhängigkeiten werden über die XML injiziert.

    Code xml:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
     "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
        <bean id="UserDao" class="UserDAOImpl">
            <property name="sessionFactory">
                <ref bean="SessionFactory" />
            </property>
        </bean>
        <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource">
                <ref bean="DataSource" />
            </property>
            <property name="mappingResources">
                <list>
                    <value>User.hbm.xml</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
                    <prop key="hibernate.show_sql">false</prop>
                </props>
            </property>
        </bean>
        <bean id="DataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName">
                <value>org.hsqldb.jdbcDriver</value>
            </property>
            <property name="url">
                <value>jdbc:hsqldb:file:database/user.db;shutdown=true</value>
            </property>
            <property name="username">
                <value>sa</value>
            </property>
            <property name="password">
                <value></value>
            </property>
        </bean>
    </beans>

    Kann man auf anhieb schon sagen, woran das liegt? Falls nicht, bitte genau sagen, was für Informationen benötigt werden!

    Gruß
    Felix
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Was ist denn das Problem genau? Wie sieht dein CLientcode aus? Wie machst du Transaktionen? Was sagt das Log?

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    weiterhin erweitert man für Hibernate basierte Daos in Spring Anwendungen besser die Klasse HibernateDaoSupport anstatt HibernateTemplate direkt, aber das nur mal so am Rande.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  4. #4
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    Hi Ollie, Hi Tom!

    @Ollie:
    Grundsätzlich ist es ein Geschwindigkeitsproblem. Mein Controller (ActionListener auf einem Button) ruft die Methode aus dem DAO auf. Die Aktion (save, delete) braucht unheimlich lange, die View (Swing-GUI) friert ein und wird erst nach ein paar Sekunden wieder freigegeben.

    Transaktionen habe ich garnicht eingebaut. Ich habe mich an einem HibernateTemplate-Tutorial von tutego.org orientiert.

    Es werden keine Fehler o.ä. in der Log ausgegeben, die Aktion (save, delete) wird durchgeführt und die Daten stehen in der HSQLDB.

    @Tom:
    Die Änderung hat nichts gebracht, das Geschwindigkeitsproblem ist weiterhin vorhanden. Allerdings bedanke ich mich für den Hinweis

    Ich hoffe, die Informationen bringen uns weiter...

    Gruß
    Felix
     

  5. #5
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    Grundsätzlich ist es ein Geschwindigkeitsproblem. Mein Controller (ActionListener auf einem Button) ruft die Methode aus dem DAO auf. Die Aktion (save, delete) braucht unheimlich lange, die View (Swing-GUI) friert ein und wird erst nach ein paar Sekunden wieder freigegeben.
    Solche Aktionen sollte man auch nicht im Event Dispatch Thread ausführen, da es dadurch zu den von dir erlebten blockierten UIs kommt. Am besten startest du aus dem Action Listener heraus die Aktion in einem neuen Thread und informierst die Oberfläche dann asynchron (EventQueue / SwingUtilitiwes.invokeLater(...) ) wenn der Vorgang abgeschlossen ist.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. Spring und Hibernate
    Von y0dA im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 21.10.09, 14:30
  2. Spring und Hibernate - Testen
    Von y0dA im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 4
    Letzter Beitrag: 28.05.08, 19:10
  3. JSF, Spring, Hibernate --> Struktur!
    Von crossib im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 9
    Letzter Beitrag: 03.03.08, 07:15
  4. DTO, Spring und Hibernate
    Von DerGrinsemann im Forum Java
    Antworten: 2
    Letzter Beitrag: 08.06.07, 11:41
  5. update - Hibernate, Spring
    Von DerGrinsemann im Forum Java
    Antworten: 1
    Letzter Beitrag: 31.05.07, 18:32