Avatar billede krukken Mester
08. november 2005 - 13:03 Der er 21 kommentarer og
1 løsning

Installering af hibernate, samt forbindelse til Mysql

Hej,

Jeg sidder og forsøger at bygge hibernate. (http://www.hibernate.org/) Når jeg prøver at bygge før jeg følgende fejl:

D:\hibernate-3.1\build.xml:112: taskdef A class need
ed by class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask cannot be found: junit/framework/Test
Avatar billede krukken Mester
08. november 2005 - 13:04 #1
Jeg har installeret ant. Og forsøge at bygge ved at skrive "ant" i det bibliotek hvor build ligger
Avatar billede arne_v Ekspert
08. november 2005 - 13:04 #2
hvorfor gør du ikke som os andre dovne og henter og bruger binaries ?

:-)

fejlen skyldes at junit.jar ikke er i classpath
Avatar billede arne_v Ekspert
08. november 2005 - 13:05 #3
hvis ikke den er med så skal du selv hente JUnit 3.8.1
Avatar billede krukken Mester
08. november 2005 - 13:09 #4
Jeg synes kun at jeg kan finde de filerne der er anført her: http://www.hibernate.org/6.html
ER der en nemmere måde at installere hibernate på - altså med binaries?
Avatar billede arne_v Ekspert
08. november 2005 - 13:12 #5
http://prdownloads.sourceforge.net/hibernate/hibernate-3.0.5.zip?download

unzip

put de unzippede jar filer i din classpath

kod og kør
Avatar billede arne_v Ekspert
08. november 2005 - 13:14 #6
eller husker jeg forkert ? jeg tester lige !
Avatar billede arne_v Ekspert
08. november 2005 - 13:17 #7
jeg får ihvertfald en:

25-05-2005  00:00        1.674.454 hibernate3.jar

udpakket
Avatar billede krukken Mester
08. november 2005 - 13:41 #8
Okay - hvordan er det så jeg kommer herfra, og til at indsætte data i en mysql, database? Kender du et eller andre hello World eksemple?
Avatar billede arne_v Ekspert
08. november 2005 - 13:46 #9
jeg har vist noget liggende
Avatar billede arne_v Ekspert
08. november 2005 - 13:46 #10
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 2.0//EN"
                                        "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!--<property name="show_sql">true</property>-->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost/Test</property>
        <property name="hibernate.connection.username"></property>
        <property name="hibernate.connection.password"></property>
        <property name="hibernate.connection.pool_size">5</property>
        <mapping file="C:\T1Mapping.xml"/>
    </session-factory>
</hibernate-configuration>
Avatar billede arne_v Ekspert
08. november 2005 - 13:47 #11
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
                                  "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
    <class name="test.T1" table="T1">
        <id name="f1" column="F1">
            <generator class="assigned"/>
        </id>
        <property name="f2">
            <column name="F2"/>
        </property>
    </class>
</hibernate-mapping>
Avatar billede arne_v Ekspert
08. november 2005 - 13:47 #12
package test;

public class T1 {
  private int f1;
  private String f2;
  public void setF1(int f1) {
      this.f1 = f1;
  }
  public int getF1() {
      return f1;
  }
  public void setF2(String f2) {
      this.f2 = f2;
  }
  public String getF2() {
      return f2;
  }
}
Avatar billede arne_v Ekspert
08. november 2005 - 13:47 #13
package test;

import java.io.File;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.type.Type;

public class Test {
  private static void delete() {
      try {
        SessionFactory sf = new Configuration().configure(new File("C:\\HibernateConfig.xml")).buildSessionFactory();
        Session s = sf.openSession();
        Transaction tx = s.beginTransaction();
        T1 r = new T1();
        r.setF1(777);
        s.delete(r);
        tx.commit();
        s.close();
      } catch (HibernateException e) {
        e.printStackTrace();
      }
  }
  private static void insert() {
      try {
        SessionFactory sf = new Configuration().configure(new File("C:\\HibernateConfig.xml")).buildSessionFactory();
        Session s = sf.openSession();
        Transaction tx = s.beginTransaction();
        T1 r = new T1();
        r.setF1(777);
        r.setF2("H test");
        s.save(r);
        tx.commit();
        s.close();
      } catch (HibernateException e) {
        e.printStackTrace();
      }
  }
  private static void selectone() {
      try {
        SessionFactory sf = new Configuration().configure(new File("C:\\HibernateConfig.xml")).buildSessionFactory();
        Session s = sf.openSession();
        T1 r = (T1)s.load(T1.class, new Integer(777));
        System.out.println(r.getF1() + " " + r.getF2());
        s.close();
      } catch (HibernateException e) {
        e.printStackTrace();
      }
  }
  private static void selectall() {
      try {
        SessionFactory sf = new Configuration().configure(new File("C:\\HibernateConfig.xml")).buildSessionFactory();
        Session s = sf.openSession();
        List all = s.find("FROM T1 AS t1");
        for(int i = 0; i < all.size(); i++) {
            T1 r = (T1)all.get(i);
            System.out.println(r.getF1() + " " + r.getF2());
        }
        s.close();
      } catch (HibernateException e) {
        e.printStackTrace();
      }
  }
  private static void selectsome() {
      try {
        SessionFactory sf = new Configuration().configure(new File("C:\\HibernateConfig.xml")).buildSessionFactory();
        Session s = sf.openSession();
        List all = s.find("FROM T1 AS t1 WHERE F2 NOT LIKE ?", new Object[] { "Dette%" }, new Type[] { Hibernate.STRING });
        for(int i = 0; i < all.size(); i++) {
            T1 r = (T1)all.get(i);
            System.out.println(r.getF1() + " " + r.getF2());
        }
        s.close();
      } catch (HibernateException e) {
        e.printStackTrace();
      }
  }
  public static void main(String[] args) {
      Logger.getLogger("net.sf.hibernate").setLevel(Level.SEVERE);
      delete();
      insert();
      selectone(); 
      selectall(); 
      selectsome(); 
  }
}
Avatar billede arne_v Ekspert
08. november 2005 - 13:47 #14
Dog er koden til Hibernate 2.x !
Avatar billede krukken Mester
08. november 2005 - 14:02 #15
hvad er det to første xml-filers funktion? hvad skal de hedde og hvor skal de ligge?
Avatar billede krukken Mester
08. november 2005 - 14:10 #16
Du kalder en funktion s.find(query) - dem findes ikke mere. Hvad gør denne find-funktion?
Avatar billede arne_v Ekspert
08. november 2005 - 14:14 #17
den første loades med:

SessionFactory sf = new Configuration().configure(new File("C:\\HibernateConfig.xml")).buildSessionFactory();

den sidste loades i den første med:

<mapping file="C:\T1Mapping.xml"/>
Avatar billede arne_v Ekspert
08. november 2005 - 14:15 #18
den første er konfiguration af Hibernate

den anden er en mapping mellem java objekt og database tabel
Avatar billede arne_v Ekspert
08. november 2005 - 14:19 #19
og den er kun deprecated i 3.x

men som docs siger så kan du bruge createQuery
Avatar billede Slettet bruger
08. november 2005 - 16:59 #20
Hvis du bruger Eclipse så findes der et plug-in der hedder MyEclipseIde, de har en god understøttelse af Hibernate
Avatar billede krukken Mester
08. november 2005 - 17:44 #21
Jeg bruger intellj - og jeg har fået adgang til databasen nu:-) Det er sku skide smart. Tak for hjælpen endnu engang arne_v. Det er rart at der er sådan nogle dig her!!! Du har i tidsløb godt nok hjulpet mig med mange forskellige ting. Ros til dig.

LIgger du et svar?
Avatar billede arne_v Ekspert
08. november 2005 - 18:07 #22
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester