黑马程序员--用户注册登录管理系统…

来源:互联网 发布:艾科网络 编辑:程序博客网 时间:2024/06/13 06:49

--------android培训java培训期待与您交流------

用Spring接管业务层,完成DAO接口对象的实例的注入;并使用DAO层方法供web层使用;其代码如下:

package cn.itcast.service.impl;

importorg.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;
import cn.itcast.exception.UserExistException;
import cn.itcast.exception.UsernameorPasswordWrongException;
import cn.itcast.service.UserService;
import cn.itcast.util.ServiceUtils;


@Service
public class UserServiceImpl implements UserService {
 @Autowired private UserDao userDao;

 
 @Override
 public boolean register(User user) throwsUserExistException {
  if(userDao.find(user.getUsername())) {
   throw newUserExistException("用户已存在!!");
  }
  user.setPassword(ServiceUtils.md5(user.getPassword()));
  return userDao.add(user);
 }

 
 @Override
 public User login(String username, Stringpassword)
   throwsUsernameorPasswordWrongException {
  password =ServiceUtils.md5(password);
  User user =userDao.find(username, password);
  if (user == null) {
   throw newUsernameorPasswordWrongException("用户名或密码错误异常");
  }
  return user;
 }

 
 @Override
 public boolean update(User user) {

//需要注意的是,对用户的密码需要先进行加密,或者准确的说是要进行取数据摘要的明文;不能直接存入数据库中;
  user.setPassword(ServiceUtils.md5(user.getPassword()));
  returnuserDao.update(user);
 }

 
 @Override
 public boolean destroy(User user) {
  returnuserDao.delete(user);
 }
}
这里需要注意下,ServiceUtils中的md5方法是对要存入数据库的密码进行去数据摘要的明文;代码如下:

 

public static String md5(String message) {
  try {
   return newBASE64Encoder().encode(MessageDigest.getInstance("md5")
     .digest(message.getBytes()));
  } catch(NoSuchAlgorithmException e) {
   throw newRuntimeException(e);
  }
 }
这个应该没什么难的,至于register和login方法抛出的异常,大家也一看就懂的;完成后,测试通过,抽取接口,整个DAO和Service层开发完成,接下来就是web层的开发与设计了;

 
0 0