hibernate+spring架构有感(三)

2014-11-24 01:03:52 · 作者: · 浏览: 4
,也分为了,接口与实现的分开,更大限度的解偶,以下是org.album.service.AlbumService.java

/**
 * 业务逻辑组件依赖于底层的DAO组件,由DAO组件负责提供持久化的访问功能
 * ,而业务逻辑组件则专注于提供业务逻辑功能
 * @author administrator
 *
 */
public interface AlbumService {

	/**
	 * 验证用户登录是否成功。
	 * @param name	登录的用户名
	 * @param pass	登录的密码
	 * @return		用户登录的结果,成功返回true,否则返回false
	 */
	boolean userLogin(String name, String pass);
	
	/**
	 * 注册新用户
	 * @param name	新注册用的用户名
	 * @param pass	新注册用户的密码
	 * @return		新注册用户的主键
	 */
	int registUser(String name, String pass);
	
	/**
	 * 添加照片
	 * @param user	添加相片的用户
	 * @param title	添加相片的标题
	 * @param fileName	新增相片在服务器上的名称
	 * @return		新添加相片的主键
	 */
	int addPhoto(String user, String title, String fileName);
	
	/**
	 * 根据用户获得该用户的所有相片
	 * @param user		当前用户
	 * @param pageNo	页码
	 * @return			返回属于该用户/指定页的相片
	 */
	List
     
       getPhotoByUser(String user, int pageNo);
	
	/**
	 * 验证用户名是否可用,即数据库里是否已经存在该用户名
	 * @param name	需要校验的用户名
	 * @return		如果该用户名可用,返回true,否则返回false
	 */
	boolean validateName(String name);
	
}

     

接下来是对其的实现,AlbumServiceImpl.java

/**
 * @author administrator
 *
 */
public class AlbumServiceImpl implements AlbumService {

	/**
	 * 业务组件所依赖的DAO组件
	 */
	private UserDao userDao = null;
	
	/**
	 * 业务组件所依赖的DAO组件
	 */
	private PhotoDao photoDao = null;
	
	@Override
	public boolean userLogin(String name, String pass) {
		try {
			// 使用UserDao根据用户名查询用户
			User user = userDao.findByName(name);
			if (user != null && user.getPass().equals(pass)) {
				return true;
			}
			return false;
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			throw new AlbumException("处理用户登录出现异常");
		}
	}

	@Override
	public int registUser(String name, String pass) {
		// TODO Auto-generated method stub
		try {
			// 创建一个新的User实例
			User user = new User();
			user.setName(name);
			user.setPass(pass);
			// 持久化数据
			userDao.save(user);
			return user.getId();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			throw new AlbumException("新用户注册出现异常");
		}
	}

	@Override
	public int addPhoto(String user, String title, String fileName) {
		// TODO Auto-generated method stub
		try {
			// 创建一个新的Photo实例
			Photo photo = new Photo();
			photo.setTitle(title);
			photo.setFileName(fileName);
			photo.setUser(userDao.findByName(user));
			// 持久化Photo实例
			photoDao.save(photo);
			return photo.getId();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			throw new AlbumException("添加相片过程中出现异常!");
		}
	}

	@Override
	public List
     
       getPhotoByUser(String user, int pageNo) {
		// TODO Auto-generated method stub
		try {
			List
      
        photos = photoDao.findByUser(userDao.findByName(user), pageNo); List
       
         result = new ArrayList
        
         (); for (Photo photo : photos) { result.add(new PhotoHolder(photo.getTitle(), photo.getFileName())); } return result; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); throw new AlbumException("查询相片列表的过程中出现异常"); } } @Override public boolean validateName(String name) { // TODO Auto-generated method stub try { // 根据用户名查询对应的User实例 User user = userDao.findByName(name); if (user != null) { return false; } return true; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); throw new AlbumException("验证用户名是否存在的过程中出现异常"); } } public UserDao getUserDao() { return userDao; } public void setUse