![]() |
#2
JeffLi2011-12-02 17:06
回复 楼主 JeffLi
经过几天的查找。终于被我整出来了。分享下
BaseDao.java ================================================= package com.jeff.dao; public interface BaseDao<T, PK> { public void add(T entity); public void delete(T entity); public void update(T entity); public void deleteById(PK id); public T findById(PK id); } ================================================= BaseDaoImpl.java ================================================= package com.jeff.dao; import import java.sql.SQLException; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class BaseDaoImpl<T, PK extends Serializable> extends HibernateDaoSupport implements BaseDao<T, PK> { protected Class entityclass; public void add(final T entity) { // 使用这个方法的记得在applicationContext.xml中配置sessionFaction就注入到使用类中 // 想知道原因。就看HibernateDaoSupport类中吧! getHibernateTemplate().save(entity); // 此处是一个回调方法。也可以使用。习惯使用Session来操作数据库的可以看下! // getHibernateTemplate().execute(new HibernateCallback() { // public Object doInHibernate(Session s) throws HibernateException, // SQLException { // s.save(entity); // return null; // } // // }); } public void delete(T entity) { getHibernateTemplate().delete(entity); } public void deleteById(PK id) { T t = (T) getHibernateTemplate().get(this.entityclass, id); getHibernateTemplate().delete(t); } public T findById(PK id) { return (T) getHibernateTemplate().get(this.entityclass, id); } public void update(T entity) { getHibernateTemplate().update(entity); } } ================================================================= 其它Dao类就可以这样写了 例: UserDao.java ================================================================= package com.jeff.dao; import java.util.List; import com.jeff.domain.User; public interface UserDao extends BaseDao<User, Integer> { public void findByUserName(String username); public List<User> findAllUser(); } ================================================================== UserDaoImpl.java ================================================================== package com.jeff.dao; import java.util.List; import com.jeff.domain.User; public class UserDaoImpl extends BaseDaoImpl<User, Integer> implements UserDao { public List<User> findAllUser() { return null; } public void findByUserName(String username) { } } ==================================================================== 上面UserDao虽然啥也没做。也可以调用到BaseDao中实现的方法。 ![]() 如果有更好的思路随时扣我。(灰常感谢) |

package com.jeff.dao;
public interface BaseDao<T, PK> {
public void add(Object T);
public Object findById(Integer PK);
public void delete(Object T);
public void update(Object T);
}
public interface BaseDao<T, PK> {
public void add(Object T);
public Object findById(Integer PK);
public void delete(Object T);
public void update(Object T);
}
BaseDaoImpl

package com.jeff.dao.impl;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.jeff.dao.BaseDao;
public class BaseDaoImpl extends HibernateDaoSupport implements BaseDao<Object, Integer> {
public void add(Object T) {
try {
getHibernateTemplate().save(T);
} catch (Exception e) {
e.printStackTrace();
}
}
public void delete(Object T) {
try{
getHibernateTemplate().delete(T);
}catch(Exception e){
e.printStackTrace();
}
}
public Object findById(Integer PK) {
Object obj = null;
try{
//通过ID查询怎么写
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public void update(Object T) {
}
}
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.jeff.dao.BaseDao;
public class BaseDaoImpl extends HibernateDaoSupport implements BaseDao<Object, Integer> {
public void add(Object T) {
try {
getHibernateTemplate().save(T);
} catch (Exception e) {
e.printStackTrace();
}
}
public void delete(Object T) {
try{
getHibernateTemplate().delete(T);
}catch(Exception e){
e.printStackTrace();
}
}
public Object findById(Integer PK) {
Object obj = null;
try{
//通过ID查询怎么写
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public void update(Object T) {
}
}
最下面的那个方法.通过ID查询怎么写.
求更完善的BaseDao代码!!
