东华理工大学长江学院毕业设计 第6章 系统详细设计与实现
(8) 创建Action:在src包下新建一个包actions。 (9) 创建jsp页面。
6.2 系统编码设计
6.2.1 编写持久对象层类
该层由若干实现类即普通的JAVA类(PO)组成,这些需要在相应的映射文件中配置,可以在数据访问层的实现类中通过Hibernate框架来访问持久对象层。
本系统共有七个数据库表,分别有七个实体类和它们映射。每个Java类又对应一个.hbm.xml映射文件,来将java类的实体变量与数据库的字段映射在一起。以文章表为例:
(1) Article.java文件:
package entity;
import java.io.Serializable;
public class Article implements Serializable{
private int articleId; // 文章的ID private int articleTypeId; // 文章类型的ID private int userId; // 注册用户的ID private String articleTitle=\ // 文章标题 private String articleContent=\ // 文章内容 private String articleSendTime=\ // 发表文章的时间 private String articleCreate=\ // 文章的来源 private String articleInfo=\ // 文章的描述信息 // 每个属性的getter 和 setter方法 public int getArticleId() { return articleId; }
public int getUserId() { return userId; }
public void setUserId(int userId) { this.userId = userId; }
public void setArticleId(int articleId) { this.articleId = articleId; }
public int getArticleTypeId() { return articleTypeId;
21
东华理工大学长江学院毕业设计 第6章 系统详细设计与实现
}
}
public void setArticleTypeId(int articleTypeId) { this.articleTypeId = articleTypeId; }
public String getArticleTitle() { return articleTitle; }
public void setArticleTitle(String articleTitle) { this.articleTitle = articleTitle; }
public String getArticleContent() { return articleContent; }
public void setArticleContent(String articleContent) { this.articleContent = articleContent; }
public String getArticleSendTime() { return articleSendTime; }
public void setArticleSendTime(String articleSendTime) { this.articleSendTime = articleSendTime; }
public String getArticleCreate() { return articleCreate; }
public void setArticleCreate(String articleCreate) { this.articleCreate = articleCreate; }
public String getArticleInfo() { return articleInfo; }
public void setArticleInfo(String articleInfo) { this.articleInfo = articleInfo; }
(2) Article.hbm.xml文件:
22 东华理工大学长江学院毕业设计 第6章 系统详细设计与实现
数据访问层类即DAO层的类,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。本节以与好友表交互为例:
FriendDao.java文件:
package dao;
import java.util.List;
import org.springframework.orm.hibernate3.HibernateTemplate; import entity.Friend;
public class FriendDao extends DAOSupport {
public FriendDao(HibernateTemplate template) { super(template); }
//功能 修改好友信息
public boolean operationFriend(String operation, Friend single){
23
东华理工大学长江学院毕业设计 第6章 系统详细设计与实现
}
if(operation == null) operation=\ if(operation.equals(\ template.save(single); if(operation.equals(\ template.update(single); if(operation.equals(\ template.delete(single); return true;
//功能 查询所有好友
public List queryFriend(int id) { String hql = \friendName\
return template.find(hql); }
//功能 根据ID 查询某个好友的详细信息 public Friend queryFriendSingle(int id) { return (Friend)template.get(Friend.class, id); } }
6.2.3 编写业务逻辑层类
业务逻辑层即Service层,负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。以好友表为例:
FriendService.java文件:
package services; import java.util.List; import dao.FriendDao; import entity.Friend;
public class FriendService { private FriendDao friendDao; public FriendService(FriendDao friendDao) { this.friendDao = friendDao; }
// 添加好友
public boolean addFriend(Friend single) { return friendDao.operationFriend(\}
// 删除好友
public boolean deleteFriend(Friend single) { return friendDao.operationFriend(\
24
东华理工大学长江学院毕业设计 第6章 系统详细设计与实现
}
}
// 修改好友
public boolean updateFriend(Friend single) { return friendDao.operationFriend(\}
// 获取指定id的好友
public Friend getFriendInfo(int id) { return friendDao.queryFriendSingle(id); }
// 列出好友
public List queryFriendList(int id){ return friendDao.queryFriend(id); }
6.2.4 编写WEB层类
该层主要包括JSP页面、MVC中的“C”(Control),其中“C”就是Struts2中的Aciton类。在Action类中主要负责调用业务逻辑层的组件,并返回相应的结果(result)。
(1) Action类的编写 LoginAction.java文件:
package actions;
import services.UserService;
import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import entity.User;
public class LoginAction extends ActionSupport { private User user;
private UserService userService; public User getUser() { return user; }
public void setUser(User user) { this.user = user; }
public UserService getUserService() { return userService; }
public void setUserService(UserService userService) { this.userService = userService; }
public String execute() throws Exception { int id = this.userService.verifyUser(user);
25