在使用hibernate3.1的时候,觉得它简化了dao的代码,让代码简洁了好多。
但是想想还是有很多让人不如意的地方,例如,创建sessionfactory,session.....然后对这些开启,关闭之类的。后来学习了spring2.0,在里面接触了hibernatedaosupport类,慢慢使用到项目中。现在感觉,如果使用了hibernate3.1,而不使用spring2.0的hibernatedaosupport类的支持,会气死...。对于它,里面有很多的方法,可以实现我们dao类的crud操作,但是平时方法用的比较单一,现在总结下下添加与删除的方法:
getHibernateTemplate().save(Object entity);
getHibernateTemplate().save(String entityName, Object entity);
getHibernateTemplate().saveOrUpdate(Object entity);
getHibernateTemplate().saveOrUpdate(String entityName, Object entity);
getHibernateTemplate().saveOrUpdateAll(Collection entites);
getHibernateTemplate().delete(Object entity);
getHibernateTemplate().delete(Object entity, LockMode lockMode);
getHibernateTemplate().deleteAll(Collection entities);
/**用户数据访问类
* @author Administrator
*/
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
/** 添加用户5个方法介绍开始 **/
public void addUser(User user){
getHibernateTemplate().save(user);
}
/**
* @para1,名称随便取
*/
public void addUser1(User user){
getHibernateTemplate().save("aa",user);
}
public void addUser2(User user){
getHibernateTemplate().saveOrUpdate(user);
}
/**
* @para1,名称随便取
*/
public void addUser3(User user){
getHibernateTemplate().saveOrUpdate("User",user);
}
/**
* 批量添加
* @param,必须为实现Collection接口实现集合
*/
public void addUser4(ArrayList<User> users){
getHibernateTemplate().saveOrUpdateAll(users);
}
/** 添加用户5个方法介绍结束 **/
/** 删除用户3个方法介绍开始 **/
public void deleteUser(User user){
getHibernateTemplate().delete(user);
}
/**
* LockMode:锁(对于hibernate这样设计的目的是在于什么地方,还不明白!)
* LockMode.NONE : 无锁机制
* LockMode.WRITE :在Insert和Update记录的时候会自动获取
* LockMode.READ : 在读取记录的时候会自动获取
* 以上这三种锁机制一般由Hibernate内部使用,如Hibernate为了保证Update
* 过程中对象不会被外界修改,会在save方法实现中自动为目标对象加上WRITE锁
* LockMode.UPGRADE :利用数据库的for update子句加锁
* LockMode.UPGRADE_NOWAIT :Oracle的特定实现,利用Oracle的for
* update nowait子句实现加锁
*@param user
*/
public void deleteUser1(User user){
//getHibernateTemplate().delete(user);
getHibernateTemplate().delete(user, LockMode.NONE);//LockMode.WRITE无效
}
/**
* 批量删除
*@param users
*/
public void deleteUser2(ArrayList<User> users){
getHibernateTemplate().deleteAll(users);
}
/** 删除用户3个方法介绍结束 **/
}
这是一个简单的dao类了.....(里面对添加与删除方法介绍了下)
/**用户业务处理类
* @author Administrator
*
*/
public class UserBizImpl implements UserBiz {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void addUser(User user){
//userDao.addUser(user);
//userDao.addUser1(user);
//userDao.addUser2(user);
//userDao.addUser3(user);
ArrayList<User> users=new ArrayList<User>();
users.add(new User("a","b"));
users.add(new User("b","b"));
userDao.addUser4(users);
}
public void deleteUser(User user){
//userDao.deleteUser(user);
//ArrayList<User> users=(ArrayList<User>) getListUser();
//userDao.deleteUser2(users);
userDao.deleteUser1(user);
}
public List getListUser(){
return userDao.getListUser();
}
public User getUserById(int id){
return userDao.getUserById(id);
}
}
这是dao对应的biz类了.....
下次对更新与查询总结下,希望刚入门可以参考下...
tanlinqing