Hibernate事务交给了spring管理
Dao层封装了Hibernate Session的save,update,get,load,delete等方法
以下是Service层的一个方法
@Override
public void updatePassword(int id, String oldPassword, String newPassword) {
Operator o = this.operatorDao.getById(id);
if(o == null)
throw new RecordNotFoundException("没有此用户");
if("".equals(oldPassword.trim())|| "".equals(newPassword))
throw new ServiceException("旧密码或新密码不能为空");
if(!oldPassword.equals(o.getPassword()))
throw new ServiceException("旧密码错误");
o.setPassword(MD5.crypt(newPassword));
}
因为Dao层是直接封装了session的方法。并且在service层开启事务。所以通过dao.getById方法取过来的对象是持久化状态。现在修改密码就直接是通过setPassoword。事务自动提交的时候Hibernate会自动生成update的sql。
现在有个疑问,那么Dao层我要把hibernate替换掉成jdbc。那么我的Dao的实现层要重写。那么Service层的事务也得换成别的。那么说我的Service层是不是得重写?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。