/**
* 业务逻辑组件依赖于底层的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