SSH项目,有关hibernate的.本人想整理一个通用的BaseDao,高手进来指点下
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代码!!
搜索更多相关主题的帖子:
项目 hibernate Object update 通用
----------------解决方案--------------------------------------------------------
回复 楼主 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 java.io.Serializable;
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中实现的方法。
如果有更好的思路随时扣我。(灰常感谢)
----------------解决方案--------------------------------------------------------
顶起来
----------------解决方案--------------------------------------------------------