public class dbtest implements Serializable {
private static final long serialVersionUID = 1L;
private long int_1;
private String str_1;
private Date date_1;
private Set<dbtest2> dbt2s;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.bean.dbtest" table="dbtest">
<id name="int_1" type="long">
<column name="int_1" />
<generator class="increment"></generator>
</id>
<property name="str_1" type="string">
<column name="str_1" />
</property>
<property name="date_1" type="date">
<column name="date_1" />
</property>
<set name="dbt2s" >
<key column="pk2" ></key>
<one-to-many class="model.bean.dbtest2" />
</set>
<!--
<set name="dbt2s" table="m2mtest">
<key column="id1" foreign-key="int_1"></key>
<many-to-many class="model.bean.dbtest2" column="id2" foreign-key="int_2"/>
</set>
-->
</class>
</hibernate-mapping>
public class dbtest2 implements Serializable {
private static final long serialVersionUID = 1L;
private long int_2;
private String str_2;
private dbtest dbt;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.bean.dbtest2" table="dbtest2">
<id name="int_2" type="long">
<column name="int_2" />
<generator class="increment"></generator>
</id>
<property name="str_2" type="string">
<column name="str_2" />
</property>
<many-to-one name="dbt" column="pk2" class="model.bean.dbtest"/>
</class>
</hibernate-mapping>
package dao.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import model.bean.dbtest;
import model.bean.dbtest2;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.dbtestDao;
public class dbtestDaoImpl implements dbtestDao {
Configuration cfg;
SessionFactory sf;
public Integer getTestint() {
return testint;
}
public void setTestint(Integer testint) {
this.testint = testint;
}
public String getTeststr() {
return teststr;
}
public void setTeststr(String teststr) {
this.teststr = teststr;
}
Session session;
Integer testint;
String teststr;
Set<String> testset = new HashSet<String>();
List<String> testlist = new ArrayList<String>();
Properties testproperties = new Properties();
public Set<String> getTestset() {
return testset;
}
public void setTestset(Set<String> testset) {
this.testset = testset;
}
public List<String> getTestlist() {
return testlist;
}
public void setTestlist(List<String> testlist) {
this.testlist = testlist;
}
public Properties getTestproperties() {
return testproperties;
}
public void setTestproperties(Properties testproperties) {
this.testproperties = testproperties;
}
public Map<String, String> getTestmap() {
return testmap;
}
public void setTestmap(Map<String, String> testmap) {
this.testmap = testmap;
}
Map<String, String> testmap = new HashMap<String, String>();;
public void init() {
System.out.println("dbtestDaoImpl:init()");
}
public void destory() {
System.out.println("dbtestDaoImpl:destory()");
}
public Configuration getCfg() {
return cfg;
}
public void setCfg(Configuration cfg) {
this.cfg = cfg;
}
public void doConfiguration() {
// cfg = new Configuration();
cfg.configure("model/hibernate.cfg.xml");
sf = cfg.buildSessionFactory();
}
public void openSession() {
session = sf.openSession();
}
public void closeSession() {
if (session.isOpen()) {
session.close();
}
}
public void saveEntity(String str) {
Transaction tx1 = session.beginTransaction();
dbtest bc1 = new dbtest();
bc1.setDate_1(new Date());
bc1.setStr_1(str);
session.save(bc1);
tx1.commit();
}
public void deleteEntity(long id) {
Transaction tx3 = session.beginTransaction();
try {
// dbtest bc4 = (dbtest) session.load(dbtest.class, id);
dbtest bc4 = new dbtest();
bc4.setInt_1(id);
session.delete(bc4);
} catch (Exception e) {
System.out.print("id= 1 car are not existed , cannot be deleted;");
}
tx3.commit();
}
public void updateEntity(long id, String str) {
Transaction tx2 = session.beginTransaction();
dbtest bc2 = (dbtest) session.load(dbtest.class, id);
// dbtest bc2 = new dbtest();
// bc2.setInt_1(id);
bc2.setStr_1(str);
// bc2.setDate_1(new Date());
session.update(bc2);
tx2.commit();
}
public void queryEntity(long id) {
try {
// String hql = "select int_1,str_1 from dbtest where int_1=?";
// Query query = session.createQuery(hql);
// query.setLong(0, id);
String hql = "select int_1,str_1 from dbtest where int_1=:int_1";
Query query = session.createQuery(hql);
query.setParameter("int_1", id);
List<?> lst = query.list();
for (Iterator<?> iterator = lst.iterator(); iterator.hasNext();) { // iterator.next();
Object[] dbtest = (Object[]) iterator.next();
System.out.println("str=" + dbtest[0]);
}
dbtest dbt = (dbtest) session.get(dbtest.class, 1L);
System.out.println("Int_1=" + dbt.getInt_1());
System.out.println("Str_1=" + dbt.getStr_1());
} catch (Exception e) {
e.printStackTrace();
System.out.println("no data in database");
throw e;
}
}
@Override
public void queryEntitym2o(long l) {
// TODO Auto-generated method stub
dbtest2 dbt2 = null;
try {
dbt2 = (dbtest2) session.get(dbtest2.class, l);
Hibernate.initialize(dbt2.getDbt());
System.out.println("dbt2.getDbt().getStr_1() "
+ dbt2.getDbt().getStr_1());
System.out.println("dbt2.getDbt().getDate_1 "
+ dbt2.getDbt().getDate_1());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session.isOpen()) {
session.close();
}
}
}
@Override
public void saveEntitym2o(long l) {
// TODO Auto-generated method stub
dbtest2 dbt2 = new dbtest2();
dbt2.setStr_2("this is dbt2");
dbt2.setDbt((dbtest) session.get(dbtest.class, 3L));
Transaction tx = session.beginTransaction();
try {
session.saveOrUpdate(dbt2);
tx.commit();
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
// TODO: handle exception
} finally {
if (session.isOpen()) {
session.close();
}
}
}
@Override
public void queryEntityo2m(long l) {
// TODO Auto-generated method stub
dbtest dbt = null;
try {
dbt = (dbtest) session.get(dbtest.class, l);
Hibernate.initialize(dbt.getDbt2s());
for (dbtest2 dbt2 : dbt.getDbt2s()) {
System.out.println("dbt2.getStr_2() " + dbt2.getStr_2());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session.isOpen()) {
session.close();
}
}
}
@Override
public void saveEntityo2m(long l) {
// TODO Auto-generated method stub
dbtest dbt = new dbtest();
dbt.setStr_1("new dbt");
dbt.setDate_1(new Date());
@SuppressWarnings("unchecked")
List<dbtest2> list = session.createCriteria(dbtest2.class).list();
Set<dbtest2> set = new HashSet<dbtest2>(list);
dbt.setDbt2s(set);
Transaction tx = session.beginTransaction();
try {
session.saveOrUpdate(dbt);
tx.commit();
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
// TODO: handle exception
} finally {
if (session.isOpen()) {
session.close();
}
}
}
}