精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-13
最后修改:2010-04-23
在使用hibernate3.1的时候,觉得它简化了dao的代码,让代码简洁了好多。 但是想想还是有很多让人不如意的地方,例如,创建sessionfactory,session.....然后对这些开启,关闭之类的。后来学习了spring2.0,在里面接触了hibernatedaosupport类,慢慢使用到项目中。现在感觉,如果使用了hibernate3.1,而不使用spring2.0的hibernatedaosupport类的支持,会气死...。对于它,里面有很多的方法,可以实现我们dao类的crud操作,但是平时方法用的比较单一,现在总结下下添加与删除的方法: getHibernateTemplate().save(Object entity);
getHibernateTemplate().delete(Object entity);
/**用户数据访问类 * @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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2661 次