一,Junit 测试
1.创建一个测试类
选择自己要测试的类->右击 new ->other ->java ->JUnit ,JUnit Text Case
->Source folder,Package 选择创建的路径
2. assertEquals(expected, actual) 断言
在测试的方法里可以使用 断言 来进行测试,如:
@Test
public void testFindDeptById2() {
Dept dept=deptBiz.findDeptById2(1);
assertEquals("叫", dept.getDeptName());
}
expected:预期的结果
actual: 实际的结果
二,创建 模板
1.创建一个 接口 IBaseDao<T>
package cn.hibernatedemo.dao;
import cn.hibernatedemo.entity.Dept;
public interface IBaseDao<T> {
//通过Session 的get()方法,根据OID 加载指定对象
public T get(int id);
//通过Session 的load()方法,根据OID 加载指定对象
public T load(int id);
//保存指定的 泛型对象
public void save(T entity);
//修改指定的 泛型对象
public void update(T entity);
//删除指定的 泛型对象
public void delete(T entity);
}
package cn.hibernatedemo.dao;
import java.lang.reflect.ParameterizedType;
import org.hibernate.Session;
import cn.hibernatedemo.entity.Dept;
public abstract class BaseDaoImp<T> implements IBaseDao<T> {
private Class<T> clazz;
public Session currentSession() {
return HibernateUtil.currentSession();
}
public BaseDaoImp() {
// TODO Auto-generated constructor stub
//使用反射技术得到 T 的 真实类型
ParameterizedType pt=(ParameterizedType)this.getClass().getGenericSuperclass();
this.clazz=(Class<T>)pt.getActualTypeArguments()[0];
}
@Override
public T get(int id) {
// TODO Auto-generated method stub
return (T) currentSession().get(clazz, id);
}
@Override
public T load(int id) {
// TODO Auto-generated method stub
return (T) currentSession().load(clazz, id);
}
@Override
public void save(T entity) {
// TODO Auto-generated method stub
currentSession().save(entity);
}
@Override
public void update(T entity) {
// TODO Auto-generated method stub
currentSession().update(entity);
}
@Override
public void delete(T entity) {
// TODO Auto-generated method stub
currentSession().delete(entity);
}
}
1)获得Session
1.可以创建一个获得Session 的方法currentSession() ,直接使用方法名调用 获得Session
public Session currentSession() {
return HibernateUtil.currentSession();
}
return HibernateUtil.currentSession();
}
2.可以 使用 之前创建的 HibernateUtil 类,直接 使用 HibernateUtil.currentSession() 获得Session
2)得到 T 的 真实类型
ParameterizedType pt=(ParameterizedType)this.getClass().getGenericSuperclass();
this.clazz=(Class<T>)pt.getActualTypeArguments()[0];
this.clazz=(Class<T>)pt.getActualTypeArguments()[0];