blogd me against my life

1Jun/10

Oracle, PHP und XAMPP

Derzeit muss ich für die Uni eine Aufgabe bearbeiten, bei welcher ich mittels PHP auf eine Oracle Datenbank zugreifen muss.

Leider klappt der Zugriff auf Oracle mittels PHP nicht von Haus aus, da die benötigte PHP Extension in der default-php.ini von XAMPP leider nicht aktiviert ist. Aber das aktivieren ist nur minimalster Aufwand.

Hierzu begeben wir uns in den Pfad der XAMPP Installation (hier einfach als $xampp bezeichnet) und suchen darin die php.ini ($xampp/php/php.ini). In dieser suchen wir nun nach der Zeile

;extension=php_oci8.dll

und entfernen das ; am Anfang der Zeile. Dann sieht die Zeile so aus:

extension=php_oci8.dll

Dann noch kurz den Apache neu starten, und siehe da, die Verbindung zu Oracle ist problemlos möglich.

  • Share/Bookmark
10Mai/10

Serialisierung von Java Objekten mit Hibernate II

Heute will ich noch kurz auf die Deserialisierung der Objekte eingehen, die wir im 1. Teil des Tutorials in die Datenbank geschrieben haben, eingehen. In diesem kurzen Abschnit will ich aber nur kurz darauf eingehen, wie man ein einzelnes Objekt, dessen Primary Key bekannt ist, aus der Datenbank auslesen kann.

Auf mehrere Objekte, und Querries werde ich in einem späteren Artikel gesondert eingehen.

Sämtlichen Schritte und nötige Anweisungen hierfür können dem Stück Code entnommen werden, genauere Erläuterungen dazu befinden sich in den jeweiligen Kommentaren.

package hibernate.tutorial;
 
import de.blogd.tutorials.hibernate.MyObject;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
 
/**
 * Beispiel zur Deserialisierung eines Objekts aus der Datenbank
 * @author Stefan
 */
public class Deserialisierung {
 
    private static SessionFactory mySessionFactory;
 
    /**
     * Singleton zur Rückgabe einer aktuellen Session.
     * @return SessionFactgory
     */
    public static SessionFactory getSessionFactory() {
        if (mySessionFactory == null) {
            mySessionFactory = new Configuration().configure().buildSessionFactory();
        }
        return mySessionFactory;
    }
 
    /**
     * Erzeugt neue Session mit Hilfe der Session Factory
     * @return Session
     */
    public static Session getSession() {
        return getSessionFactory().openSession();
    }
 
    public static void main(String[] args) {
 
 
        /**
         * Auch für das deserialisieren von Objekten benötigen wir eine
         * Session, diesen können wir mit den, im letzten Tutorial erstellten,
         * Methoden bekommen.
         * Auch dies erleden wir wieder in einer Transaktion!
         */
        Session myDeserialSession = getSession();
 
 
        /**
         * Transaktion erstellen und Transaktion starten, in dieser können
         * die Objekte dann aus der Datenbank geholt werden.
         * Transaktion ist nicht zwenigend nötig, aber für ein sauberes Arbeiten
         * im Transaktionsbetrieb immer zu empfehlen.
         */
        Transaction myDeserialTransaction = myDeserialSession.getTransaction();
        myDeserialSession.beginTransaction();
 
        /**
         * Nun holen wir das Objekt aus der Datenbank, hierzu nutzen wir einfach
         * die get() Methode der vorher angelegten Session, diese will 2 Parameter
         * 1. die zu deserialisierende Klasse, und 2. den Primärschlüssel des zu
         * deserialisierenden Objekts.
         * Als Rückgabewert erhält man ein Object, nach einem (erfolgreichen) cast
         * auf MyObject, kann mit diesem Objekt gearbeitet werden.
         */
        MyObject myDeserialSampleObject = (MyObject) myDeserialSession.get(MyObject.class, 1);
 
         /**
         * Transaktion mit einem Commit abschließen, auch wenn keine Änderungen
         * gemacht wurden.
         */
        myDeserialTransaction.commit();
 
        /**
         * Nach Abschluss die Session wieder schließen.
         */
        myDeserialSession.close();
 
    }
}
  • Share/Bookmark