Alexander1307
Grünschnabel
Hallo habe mein erstes Hibernate Projekt gestartet. Doch jetzt hängst bei mir und ich weis nicht wo. Keine Fehlermeldung garnichts und er speichert nicht. Was habe ich gemacht: also zuerst habe ich die hibernate.cfg.xml datei erstellt. der code hier:
<----------------------------------------------------- code ---------------------------------------------->
danach habe ich mein zu speicherndes Object (Autor_Object) erstellt. der Code hier:
Danach habe ich mir die Init SessionFactory klasse erstellt. Code hier:
danach habe ich die createAutor Methode geschrieben und rufe diese in der actionPerformed Methode auf. code hier:
das problem ist es wird nichts gespeichert. und nach dem ich die createAutor() Methode aufrufe kommt auch keine Messagebox (JOptionPane.showMessageDialog(null," Autor gespeichert ")
<----------------------------------------------------- code ---------------------------------------------->
Code:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">
jdbc:mysql://localhost:3307/songbook
</property>
<property name="connection.username">root</property>
<property name="connection.password">javanoja</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property>
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class = "Autor_Object" />
</session-factory>
</hibernate-configuration>
danach habe ich mein zu speicherndes Object (Autor_Object) erstellt. der Code hier:
Code:
import java.io.Serializable;
import java.text.MessageFormat;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
@Entity
public class Autor_Object implements Serializable
{
/**
* Author Alexander Schaaf
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "autor_gen")
@SequenceGenerator(name = "autor_gen", sequenceName = "autor_id_seq")
private Integer id;
private String name;
private String vorname;
private String nickname;
private Byte[] foto;
private Date timestamp;
public Autor_Object() {
}
/*public Autor_Object(String name) {
this.name = name;
}*/
//------> Getter & Setter<-----
//-----< Id >-------
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
//-----< Name >----------
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//-----< Vorname >-------
public String getVorname(){
return vorname;
}
public void setVorname(String vorname){
this.vorname = vorname;
}
//-----< Nickname >-------
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
//-----< Foto >-------
public Byte[] getFotoStream() {
return foto;
}
public void setFotoStream(Byte[] foto){
this.foto = foto;
}
//-----< Timestamp >-------
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp){
this.timestamp = timestamp;
}
//------> Getter & Setter<-----
public String toString() {
return MessageFormat.format("{0}: id={1}, name={2}", new Object[] {
getClass().getSimpleName(), id, name });
}
}
Danach habe ich mir die Init SessionFactory klasse erstellt. Code hier:
Code:
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
public class InitSessionFactory {
private static org.hibernate.SessionFactory sessionFactory;
private InitSessionFactory() {
}
static {
final AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.configure("/hibernate.cfg.xml");
sessionFactory = cfg.buildSessionFactory();
}
public static SessionFactory getInstance() {
return sessionFactory;
}
}
danach habe ich die createAutor Methode geschrieben und rufe diese in der actionPerformed Methode auf. code hier:
Code:
private Autor_Object createAutor() {
Autor_Object autor = new Autor_Object();
autor.setName(txtName.getText());
autor.setVorname(txtVorname.getText());
autor.setNickname(txtNickname.getText());
autor.setFotoStream(null);
autor.setTimestamp(null);
Session session = InitSessionFactory.getInstance().getCurrentSession();
try{
Transaction tx = session.beginTransaction();
session.save(autor);
tx.commit();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Fehler"+e);
session.getTransaction().rollback();
}
return autor;
}
public void actionPerformed(ActionEvent av)
{
if (av.getSource().equals(btnAbbrechen))
{
dispose();
}
if (av.getSource().equals(btnSpeichern))
{
createAutor();
JOptionPane.showMessageDialog(null," Autor gespeichert ");
}
das problem ist es wird nichts gespeichert. und nach dem ich die createAutor() Methode aufrufe kommt auch keine Messagebox (JOptionPane.showMessageDialog(null," Autor gespeichert ")
