经过one-to-one和one-to-many测试没有问题,看直接复制到任何需要DAO的工程中使用

代码

强烈建议在实际使用中加个接口

BaseDAO.JAVA


一个通用的Hibernate DAO_sedpackage com.lusm.HibernateSessionFactory;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_sedimport java.io.Serializable;

一个通用的Hibernate DAO_sedimport java.util.List;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_sedimport org.hibernate.Query;

一个通用的Hibernate DAO_sedimport org.hibernate.Session;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10public class BaseDAO 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * 添加实体

一个通用的Hibernate DAO_hibernate_14     * @param obj,要添加的实体对象

一个通用的Hibernate DAO_hibernate_14     * @throws Exception

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void add(Object obj) throws Exception一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        Session session = null;

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        try 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            session = HibernateSessionFactory.getSession();

一个通用的Hibernate DAO_hibernate_14            session.save(obj);

一个通用的Hibernate DAO_hibernate_14            session.beginTransaction().commit();

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13            if(session!=null)一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14                  session.close();

一个通用的Hibernate DAO_sed_17            }

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        } catch (RuntimeException e) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            session.beginTransaction().rollback();

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13            if(session!=null)一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14                  session.close();

一个通用的Hibernate DAO_sed_17            }

一个通用的Hibernate DAO_hibernate_14            throw e;

一个通用的Hibernate DAO_sed_17        }

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14    

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * 删除实体

一个通用的Hibernate DAO_hibernate_14     * @param obj,要删除的实体

一个通用的Hibernate DAO_hibernate_14     * @throws Exception

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void delete(Object obj) throws Exception一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        Session session = null;

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        try 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            //取得session对象

一个通用的Hibernate DAO_hibernate_14            session =HibernateSessionFactory.getSession();

一个通用的Hibernate DAO_hibernate_14            //删除实体

一个通用的Hibernate DAO_hibernate_14            session.delete(obj);

一个通用的Hibernate DAO_hibernate_14            //提交事务

一个通用的Hibernate DAO_hibernate_14            session.beginTransaction().commit();

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13            if(session!=null)一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14                  session.close();

一个通用的Hibernate DAO_sed_17            }

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        } catch (Exception e) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            session.beginTransaction().rollback();//事务回滚

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13            if(session!=null)一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14                  session.close();

一个通用的Hibernate DAO_sed_17            }

一个通用的Hibernate DAO_hibernate_14            throw e;

一个通用的Hibernate DAO_sed_17        }

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * 更新实体

一个通用的Hibernate DAO_hibernate_14     * @param obj,要更新的实体

一个通用的Hibernate DAO_hibernate_14     * @throws Exception

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void update(Object obj) throws Exception一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        Session session=null;

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        try 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            //取得session对象

一个通用的Hibernate DAO_hibernate_14            session=HibernateSessionFactory.getSession();

一个通用的Hibernate DAO_hibernate_14            //删除实体

一个通用的Hibernate DAO_hibernate_14            session.update(obj);

一个通用的Hibernate DAO_hibernate_14            //提交事务

一个通用的Hibernate DAO_hibernate_14            session.beginTransaction().commit();

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13            if(session!=null)一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14                  session.close();

一个通用的Hibernate DAO_sed_17            }

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        } catch (Exception e) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            session.beginTransaction().rollback();//事务回滚

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13            if(session!=null)一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14              session.close();

一个通用的Hibernate DAO_sed_17            }

一个通用的Hibernate DAO_hibernate_14            throw e;

一个通用的Hibernate DAO_sed_17        }

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14    

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * 根据指定的hql进行查询,并返回查询结果

一个通用的Hibernate DAO_hibernate_14     * @param hql,hql语句

一个通用的Hibernate DAO_hibernate_14     * @return 查询结果

一个通用的Hibernate DAO_hibernate_14     * @throws Exception

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public List<?> findByHQL(String hql) throws Exception一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        try 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            Query queryObject =HibernateSessionFactory.getSession().createQuery(hql);

一个通用的Hibernate DAO_hibernate_14            return queryObject.list();

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        } catch (Exception e) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            throw e;

一个通用的Hibernate DAO_sed_17        }

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * 根据指定的实体类型和主键的值,查找实体对象

一个通用的Hibernate DAO_hibernate_14     * @param cls,实体的类

一个通用的Hibernate DAO_hibernate_14     * @param key,主键的值

一个通用的Hibernate DAO_hibernate_14     * @return,查找的实体对象

一个通用的Hibernate DAO_hibernate_14     * @throws Exception

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_hibernate_14    public Object findById(String cls,Serializable key)

一个通用的Hibernate DAO_hibernate_14        throws Exception

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        try 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            Object instance = (Object) HibernateSessionFactory.getSession().get(cls, key);

一个通用的Hibernate DAO_hibernate_14            return instance;

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        } catch (Exception e) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            throw e;

一个通用的Hibernate DAO_sed_17        }

一个通用的Hibernate DAO_hibernate_14        

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_sed_166}


HibernateSessionFactory.java 我就不发了,每个工程里都有


值得注意到是:

写代码是必须考虑到效率,资源利用,第一,不要创建无谓的实例,第二,不要写没有必要的返回语句,第三,close是有目的的,不可以滥用,第四,必须考虑到哪一步出错的概率高,必须在下一步先做判断。


如下代码就是很有问题的:


一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10    /** *//**

一个通用的Hibernate DAO_hibernate_14     * 添加实体

一个通用的Hibernate DAO_hibernate_14     * @param obj,要添加的实体对象

一个通用的Hibernate DAO_hibernate_14     * @throws Exception

一个通用的Hibernate DAO_sed_166     */

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10    public void add(Object obj) throws Exception一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        Session ses=null;

一个通用的Hibernate DAO_hibernate_14        Transaction tx=null;

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        try 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            //取得session对象

一个通用的Hibernate DAO_hibernate_14            ses=HibernateSessionFactory.getSession();

一个通用的Hibernate DAO_hibernate_14            //开始事务

一个通用的Hibernate DAO_hibernate_14            tx=ses.beginTransaction();

一个通用的Hibernate DAO_hibernate_14            //保存实体

一个通用的Hibernate DAO_hibernate_14            ses.save(obj);

一个通用的Hibernate DAO_hibernate_14            //提交事务

一个通用的Hibernate DAO_hibernate_14            tx.commit();

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        } catch (Exception e) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            tx.rollback();//事务回滚

一个通用的Hibernate DAO_hibernate_14            throw e;

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13        }finally一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14            //关闭session

一个通用的Hibernate DAO_hibernate_14            HibernateSessionFactory.closeSession();

一个通用的Hibernate DAO_sed_17        }

一个通用的Hibernate DAO_sed_166    }


使用one-to-many中执行删除时, 你可能会遇到这样的错误


一个通用的Hibernate DAO_sedException in thread "main" org.hibernate.TransientObjectException: the detached instance passed to delete() had a null identifier

  .........

或者

一个通用的Hibernate DAO_sedException in thread "main" org.hibernate.TransientObjectException: the detached instance passed to delete() had a null identifier

一个通用的Hibernate DAO_sed    at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:63)

一个通用的Hibernate DAO_sed    at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:761)

一个通用的Hibernate DAO_sed    at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:739)

一个通用的Hibernate DAO_sed    at com.lusm.HibernateSessionFactory.BaseDAO.delete(BaseDAO.java:44)

一个通用的Hibernate DAO_sed    at com.lusm.main.Del.main(Del.java:19)

一个通用的Hibernate DAO_sedException in thread "main" org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

一个通用的Hibernate DAO_sed    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)

一个通用的Hibernate DAO_sed    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)

一个通用的Hibernate DAO_sed    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)

一个通用的Hibernate DAO_sed    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)

一个通用的Hibernate DAO_sed    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)

一个通用的Hibernate DAO_sed    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)

一个通用的Hibernate DAO_sed    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)

一个通用的Hibernate DAO_sed    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)

一个通用的Hibernate DAO_sed    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)

一个通用的Hibernate DAO_sed    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)

一个通用的Hibernate DAO_sed    at com.lusm.HibernateSessionFactory.BaseDAO.delete(BaseDAO.java:46)

一个通用的Hibernate DAO_sed    at com.lusm.main.Del.main(Del.java:18)

一个通用的Hibernate DAO_sedCaused by: java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`lusm/test1`, CONSTRAINT `test1_ibfk_1` FOREIGN KEY (`id`) REFERENCES `test` (`id`))

一个通用的Hibernate DAO_sed    at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1669)

一个通用的Hibernate DAO_sed    at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1085)

一个通用的Hibernate DAO_sed    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)

一个通用的Hibernate DAO_sed    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)

一个通用的Hibernate DAO_sed    一个通用的Hibernate DAO_java_11 9 more


原因是你的xml配置和数据库创建有问题

下面给出一个成功的例子

manyxml config

一个通用的Hibernate DAO_sed<?xml version="1.0" encoding="utf-8"?>

一个通用的Hibernate DAO_sed<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

一个通用的Hibernate DAO_sed"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

一个通用的Hibernate DAO_sed<!-- 

一个通用的Hibernate DAO_sed    Mapping file autogenerated by MyEclipse Persistence Tools

一个通用的Hibernate DAO_sed-->

一个通用的Hibernate DAO_sed<hibernate-mapping>

一个通用的Hibernate DAO_sed    <class name="com.lusm.test.Test1" table="test1" catalog="lusm">

一个通用的Hibernate DAO_sed        <id name="sid" type="java.lang.Integer">

一个通用的Hibernate DAO_sed            <column name="sid" />

一个通用的Hibernate DAO_sed            <generator class="increment" />

一个通用的Hibernate DAO_sed        </id>

一个通用的Hibernate DAO_sed        <many-to-one name="test"  class="com.lusm.test.Test" fetch="select"  cascade="save-update" >

一个通用的Hibernate DAO_sed            <column name="id" not-null="true" />

一个通用的Hibernate DAO_sed        </many-to-one>

一个通用的Hibernate DAO_sed        <property name="sname" type="java.lang.String">

一个通用的Hibernate DAO_sed            <column name="sname" length="20" />

一个通用的Hibernate DAO_sed        </property>

一个通用的Hibernate DAO_sed    </class>

一个通用的Hibernate DAO_sed</hibernate-mapping>


code

一个通用的Hibernate DAO_sedpackage com.lusm.test;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10/** *//**

一个通用的Hibernate DAO_hibernate_14 * Test1 generated by MyEclipse Persistence Tools

一个通用的Hibernate DAO_sed_166 */

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10public class Test1 implements java.io.Serializable 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    // Fields

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    private Integer sid;

一个通用的Hibernate DAO_hibernate_14    private Test test;

一个通用的Hibernate DAO_hibernate_14    private String sname;

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    // Constructors

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//** default constructor */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Test1() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//** minimal constructor */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Test1(Test test) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.test = test;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//** full constructor */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Test1(Test test, String sname) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.test = test;

一个通用的Hibernate DAO_hibernate_14        this.sname = sname;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    // Property accessors

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Integer getSid() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        return this.sid;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void setSid(Integer sid) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.sid = sid;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Test getTest() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        return this.test;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void setTest(Test test) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.test = test;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public String getSname() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        return this.sname;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void setSname(String sname) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.sname = sname;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_sed_166}


one
xml config

一个通用的Hibernate DAO_sed<?xml version="1.0" encoding="utf-8"?>

一个通用的Hibernate DAO_sed<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

一个通用的Hibernate DAO_sed"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

一个通用的Hibernate DAO_sed<!-- 

一个通用的Hibernate DAO_sed    Mapping file autogenerated by MyEclipse Persistence Tools

一个通用的Hibernate DAO_sed-->

一个通用的Hibernate DAO_sed<hibernate-mapping>

一个通用的Hibernate DAO_sed    <class name="com.lusm.test.Test" table="test" catalog="lusm">

一个通用的Hibernate DAO_sed        <id name="id" type="java.lang.Integer">

一个通用的Hibernate DAO_sed            <column name="id" />

一个通用的Hibernate DAO_sed            <generator class="increment" />

一个通用的Hibernate DAO_sed        </id>

一个通用的Hibernate DAO_sed        <property name="name" type="java.lang.String">

一个通用的Hibernate DAO_sed            <column name="name" length="20" />

一个通用的Hibernate DAO_sed        </property>

一个通用的Hibernate DAO_sed        <set name="test1s" inverse="true">

一个通用的Hibernate DAO_sed            <key>

一个通用的Hibernate DAO_sed                <column name="id" not-null="true" />

一个通用的Hibernate DAO_sed            </key>

一个通用的Hibernate DAO_sed            <one-to-many class="com.lusm.test.Test1"/>

一个通用的Hibernate DAO_sed        </set>

一个通用的Hibernate DAO_sed    </class>

一个通用的Hibernate DAO_sed</hibernate-mapping>


code

一个通用的Hibernate DAO_sedpackage com.lusm.test;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_sedimport java.util.HashSet;

一个通用的Hibernate DAO_sedimport java.util.Set;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10/** *//**

一个通用的Hibernate DAO_hibernate_14 * Test generated by MyEclipse Persistence Tools

一个通用的Hibernate DAO_sed_166 */

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10public class Test implements java.io.Serializable 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    // Fields

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    private Integer id;

一个通用的Hibernate DAO_hibernate_14    private String name;

一个通用的Hibernate DAO_hibernate_14    private Set test1s = new HashSet(0);

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    // Constructors

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//** default constructor */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Test() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//** full constructor */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Test(String name, Set test1s) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.name = name;

一个通用的Hibernate DAO_hibernate_14        this.test1s = test1s;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_hibernate_14    // Property accessors

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Integer getId() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        return this.id;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void setId(Integer id) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.id = id;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public String getName() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        return this.name;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void setName(String name) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.name = name;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public Set getTest1s() 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        return this.test1s;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public void setTest1s(Set test1s) 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        this.test1s = test1s;

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_sed_166}


db sql

一个通用的Hibernate DAO_sedcreate table `lusm`.`test1`(

一个通用的Hibernate DAO_sed`sid` INT not null auto_increment,

一个通用的Hibernate DAO_sed`id` INT not null,

一个通用的Hibernate DAO_sed`sname` varchar(20),

一个通用的Hibernate DAO_sedprimary key (`sid`),

一个通用的Hibernate DAO_sedindex(sid),

一个通用的Hibernate DAO_sedforeign key(id) references test(id)  ON DELETE CASCADE ON UPDATE CASCADE 

一个通用的Hibernate DAO_sed);

一个通用的Hibernate DAO_sed    create table `lusm`.`test`(

一个通用的Hibernate DAO_sed        `id` INT not null auto_increment,

一个通用的Hibernate DAO_sed       `name` VARCHAR(20),

一个通用的Hibernate DAO_sed        primary key (`id`)

一个通用的Hibernate DAO_sed    );


下面给出 该示例的两个测试类


insert

一个通用的Hibernate DAO_sedpackage com.lusm.main;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_sedimport com.lusm.HibernateSessionFactory.BaseDAO;

一个通用的Hibernate DAO_sedimport com.lusm.test.Test;

一个通用的Hibernate DAO_sedimport com.lusm.test.Test1;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10public class Main 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * @param args

一个通用的Hibernate DAO_hibernate_14     * @throws Exception 

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public static void main(String[] args) throws Exception 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        Test test = new Test();

一个通用的Hibernate DAO_hibernate_14  

一个通用的Hibernate DAO_hibernate_14        test.setName("nihao");

一个通用的Hibernate DAO_hibernate_14        BaseDAO td = new BaseDAO();

一个通用的Hibernate DAO_hibernate_14        td.add(test);

一个通用的Hibernate DAO_hibernate_14        

一个通用的Hibernate DAO_hibernate_14        Test1 t1 = new Test1(test);

一个通用的Hibernate DAO_hibernate_14        Test1 t2 = new Test1(test);

一个通用的Hibernate DAO_hibernate_14        Test1 t3 = new Test1(test);

一个通用的Hibernate DAO_hibernate_14        t1.setSid(1);

一个通用的Hibernate DAO_hibernate_14        t2.setSid(2);

一个通用的Hibernate DAO_hibernate_14        t3.setSid(3);

一个通用的Hibernate DAO_hibernate_14        t1.setSname("nihao");

一个通用的Hibernate DAO_hibernate_14        t2.setSname("mfafs");

一个通用的Hibernate DAO_hibernate_14        t3.setSname("acncs");

一个通用的Hibernate DAO_hibernate_14        

一个通用的Hibernate DAO_hibernate_14        BaseDAO td1 = new BaseDAO();

一个通用的Hibernate DAO_hibernate_14        td1.add(t1);

一个通用的Hibernate DAO_hibernate_14        td1.add(t2);

一个通用的Hibernate DAO_hibernate_14        td1.add(t3);

一个通用的Hibernate DAO_hibernate_14               

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_sed_166}


delete

一个通用的Hibernate DAO_sedpackage com.lusm.main;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_sedimport com.lusm.HibernateSessionFactory.BaseDAO;

一个通用的Hibernate DAO_sedimport com.lusm.test.Test;

一个通用的Hibernate DAO_sed

一个通用的Hibernate DAO_eclipse_09一个通用的Hibernate DAO_hibernate_10public class Del 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    /** *//**

一个通用的Hibernate DAO_hibernate_14     * @param args

一个通用的Hibernate DAO_hibernate_14     * @throws Exception 

一个通用的Hibernate DAO_sed_17     */

一个通用的Hibernate DAO_java_12一个通用的Hibernate DAO_java_13    public static void main(String[] args) throws Exception 一个通用的Hibernate DAO_java_11{

一个通用的Hibernate DAO_hibernate_14        Test test = new Test();

一个通用的Hibernate DAO_hibernate_14        test.setId(1);

一个通用的Hibernate DAO_hibernate_14        BaseDAO bd = new BaseDAO();

一个通用的Hibernate DAO_hibernate_14        bd.delete(test);

一个通用的Hibernate DAO_sed_17    }

一个通用的Hibernate DAO_sed_166}