diff --git a/ws/eclipse/HibIntro/src/main/java/hibintro/v3/PersistSingleUser.java b/ws/eclipse/HibIntro/src/main/java/hibintro/v3/PersistSingleUser.java new file mode 100644 index 0000000000000000000000000000000000000000..ab1d36301ea48a1e7980ebc39c08551fcab957ca --- /dev/null +++ b/ws/eclipse/HibIntro/src/main/java/hibintro/v3/PersistSingleUser.java @@ -0,0 +1,33 @@ +package hibintro.v3; + + + +import hibintro.util.HibernateUtil; + +import org.hibernate.Session; +import org.hibernate.Transaction; + + + +/** + * @author goik + * + * Persisting a simple instance of {@link User} + * + */ +public class PersistSingleUser { + + /** + * @param args not used. + */ + public static void main(String[] args) { + final Session session = HibernateUtil.createSessionFactory("hibintro/v3/hibernate.cfg.xml").openSession(); + + final Transaction transaction = session.beginTransaction(); + + final User u = new User("goik", "Martin Goik"); + session.save(u); + + transaction.commit(); + } +} \ No newline at end of file diff --git a/ws/eclipse/HibIntro/src/main/java/hibintro/v3/User.java b/ws/eclipse/HibIntro/src/main/java/hibintro/v3/User.java new file mode 100644 index 0000000000000000000000000000000000000000..79fa588d120c0ee351cfdc2c43358c832150af93 --- /dev/null +++ b/ws/eclipse/HibIntro/src/main/java/hibintro/v3/User.java @@ -0,0 +1,66 @@ +package hibintro.v3; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Transient; + +/** + * @author goik + * + * A simple class indended to be mapped to a database server + * + */ +@Entity +public class User { + + String uid; + /** + * + * @return The user's unique login name e.g. "goik" + */ + @Id + public String getUid() { + return uid; + } + /** + * @param uid See {@link #getUid()}. + */ + public void setUid(String uid) { + this.uid = uid; + } + String cname; + /** + * @return The user's common name e.g. "Martin Goik" + */ + public String getCname() { + return cname; + } + /** + * @param cname See {@link #getCname()}. + */ + public void setCname(String cname) { + this.cname = cname; + } + + boolean selected = false; + @Transient + public boolean isSelected() { + return selected; + } + public void setSelected(boolean selected) { + this.selected = selected; + } +/** + * Hibernate/JPA require a default constructor + */ + public User() {} + + /** + * @param uid See {@link #getUid()}. + * @param cname See {@link #getCname()}. + */ + public User(String uid, String cname) { + this.uid = uid; + this.cname = cname; + } +} \ No newline at end of file diff --git a/ws/eclipse/HibIntro/src/main/java/hibintro/v3/hibernate.cfg.xml b/ws/eclipse/HibIntro/src/main/java/hibintro/v3/hibernate.cfg.xml new file mode 100644 index 0000000000000000000000000000000000000000..7497298bce5b0ec8d3fad1f6b0238df48522ba7c --- /dev/null +++ b/ws/eclipse/HibIntro/src/main/java/hibintro/v3/hibernate.cfg.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" + "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> +<hibernate-configuration> + <session-factory > + <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> + <property name="hibernate.connection.password">XYZ</property> + <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hdm</property> + <property name="hibernate.connection.username">hdmuser</property> + <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> + <property name="hibernate.show_sql">true</property> + <property name="hibernate.format_sql">true</property> + <property name="hibernate.hbm2ddl.auto">update</property> + + <mapping class="hibintro.v3.User"/> + </session-factory> +</hibernate-configuration>