ich habe meine hiberrnate configuration in den hibernate.cfg.xml
Darunter ist auch user und password…
Ich möchte dass nicht jeder das passwort und den user kennt, kann man dass irgendwie verschlüsseln???
Oder wenn ich einen Anmeldedialog mache die werte da irgendwie reinsetzen???
Weiß da jemand eine Lösung???
Ich würde es denk ich mal mit einem .properties file machen …
Ich weiß zwar keine Lösung, aber normalerweise läuft eine Datenbank ja nicht lokal bei jedem. Deshalb sollte Hibernate auch mit auf dem Server der DB laufen und da ist es Wurst, wie das Passwort angezeigt wird. Oder hat bei euch jeder Zugriff auf den DB-Server?
Sollte die DB lokal laufen, brauchste die sowieso keine Gedanken drum zu machen, dass jemand deine DB „hackt“, das geht leichter als du denkst .
Oder wenn ich einen Anmeldedialog mache die werte da irgendwie reinsetzen???
Dann müssen aber doch auch wieder alle den User und das Passwort kennen!?
ok wenn ich hibernate auf def den DB Server laufen lassen möchte…
Was benötige ich da noch??Brauch ich eine Application Server???
Oder wie greif ich dann dann auf meine Hibernate Sachen zu??
Selber einen Server machen und über RMI zugreifen??
Wäre dankkbar für ein Tipps, was es alles für Optionen gibt ??
=)
Das hängt davon ab was du gebaut hast. Du kannst alles als Webanwendung bauen, kannst aber auch ne normale Anwendung bauen auf die per Socket/RMI/… zugreifst.
eigentlich ist es nur ein kleines projekt darum wollte ich die kommunikation so einfach wie möglich halten…
ich hab eine swing anwendung und die soll ein paar daten in eine db speichern(nicht lokal)…
wenn ich hibernate jetzt auf dem db-server laufen lass dann muss ich ja selber noch einen server programmieren oder? oder gibt es da schon fertige lösungen/server die man nutzen kann?
ja so ist es auch grad…
da habe ich aber dann probleme mit dem user und pswd…
und das transaction konzept wird denk ich mal dann auch nicht so aufgehen ;P…
okay das heißt es würde keine alternative geben wie selber ein rmi server zu basteln…
public class Client
{
public Client()
{
HibernateManager hib = null;
try {
System.setProperty("java.security.policy","java.policy");
if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager());
hib = (HibernateManager)Naming.lookup("rmi://localhost:1098/Test");
Author author = new Author();
//hib.createAuthor(author);
try {
author = hib.getAuthor(1);
System.out.println(author.getName());
//System.out.println(hib.getAuthor(100).getName());
} catch (ObjectNotFoundException e)
{
e.printStackTrace();
}
//myTank = (Tank) Naming.lookup("rmi://localhost/Tank");
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NotBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client();
}
}
also authoren anlegen klappt
dch sobal ich mir einen holen will bekomm ich die exception…
Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:86)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:140)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at dao.Author_$$_javassist_0.getName(Author_$$_javassist_0.java)
at client.Client.<init>(Client.java:31)
at client.Client.main(Client.java:53)
Öhm, so aus dem Stehgreif kenn ich leider kein Tutorial. Aber ich hab mal bei einem Beitrag von EagleEye zu Hibernate ein Beispiel gepostet, wo auch WebServices verwendet wurden.
Das mit dem WS versteh ich noch gar nicht…
Den lass ich jetzt auf meinem Server laufen und der Client greift darauf zu oder wie verbindet sich der client zum ws???
EDIT: Aber iwie sieht des mir alles nach viel zuviel arbeit aus… ich kenn mich leider mit application server nicht so aus, weil ich nicht viel mit gemacht hab… Aber eigentlich bräuchte ich doch z.B. JBoss und darauf muss hibernate laufen und ein interface welches mir meine objekte liefert… oder keiner in sowas erfahrung??ihr habt doch bestimmt auch irgendein server für eure anwendung…
Die Hibernate Beispiele wurden mittlerweile mehrfach überarbeitet, da also keinen Hehl mehr draus machen .
Du hast eine Facade, die du mit WebService Annotations markierst. Dann musst du einen WebService publizieren. Auf der Client-Seite kannst du dann mit dem wsimport-Tool von Java deinen Client anhand der wsdl automatisch bauen lassen.
ok dann such ich mal nachdem tool…
meine frage immer noch wo läuft der ws?
wenn ich anstatt load -->get verwende dann ist das lazy loaden abgestellt…
get holt mir gleich das ganze Objekt… bei load läd er es mir erst in einen handler rein und überprüft ob das objekt überhaupt vorhanden…
Das Tool musst du nicht suchen, liegt bei jedem JDK mit drin, und funktioniert ohne Probleme von der Kommandozeile, wenn du auch javac aufrufen kannst .
Der WS läuft auf deinem Server, und der Client greift darauf zu. Zu beachten bei WS gilt:
1.) relativ langsam
2.) Übertragung der Daten als XML => rekursive Aufrufe funktionieren nicht (also Objekt a hat eine Referenz auf Objekt b und Objekt b wieder auf Objekt a)
3.) Dafür aber Sprachenübergreifend. Du kannst OHNE PROBLEME einen Java WebService schreiben, aber den Client in VB, .NET. Delphi, … für die meisten Sprachen gibt es einen einfachen WSImport, der dir alle benötigten Klassen anhand der wsdl des Webservices automatisch erstellt.
also ich hab mir das mit dem server nochmal durch den kopf gehen lassen… und finde keine großartigen grund warum ich einen server einsetzen sollte!!!
Ich hab (fast) keine business logik… Die meiste logik ist daten anzeigen und speichern… Warum sollte ich also einen server einsetzen???Kennt jemand gründe oder was der nachteil wäre???
Ich denke jeder client hat eine db verbindung und dadurch eine eigene hibernate session… und die zugriffe werden über transaktionen gesteuert…