引用 11 楼 magi1201 的回复:
Quote: 引用 8 楼 u013229247 的回复:
Quote: 引用 6 楼 magi1201 的回复:
1 定义AndroidUtil 这个bean时,注入userService
2 直接private UserService userService = new UserService 的实现
我SSH不怎么了解 老大,你这是说的是这两个方法? 还是两步?
两个方法,直接看第二个方法,直接new UserServiceImpl 将UserServiceImpl 换为具体的UserService的实现类就可以了
@Transactional
@SuppressWarnings("unchecked")
public abstract class BaseDaoImpl implements BaseDao {
@Resource
private SessionFactory sessionFactory;
protected Class clazz; // 这是一个问题!
public BaseDaoImpl() {
// 通过反射得到T的真实类型
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
this.clazz = (Class) pt.getActualTypeArguments()[0];
System.out.println("clazz = " + clazz.getName());
}
public void save(T entity) {
getSession().save(entity);
}
public void update(T entity) {
getSession().update(entity);
}
public void delete(Long id) {
Object obj = getSession().get(clazz, id);
getSession().delete(obj);
}
public T getById(Long id) {
return (T) getSession().get(clazz, id);
}
public List getByIds(Long[] ids) {
if (ids == null || ids.length == 0) {
return Collections.EMPTY_LIST;
}
return getSession().createQuery(//
"FROM " + clazz.getSimpleName() + " WHERE id IN(:ids)")//
.setParameterList("ids", ids)//
.list();
}
public List findAll() {
return getSession().createQuery(//
"FROM " + clazz.getSimpleName())//
.list();
}
/**
* 获取当前可用的Session
*
* @return
*/
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
}
这是BaseDaoImpl的代码,求老大帮忙看哈