github:https://github.com/wade6/messageboard-webx3
实现业务逻辑代码
6、创建各层的java程序
代码的结构如图:
源代码为:
UserDO.java
package com.alibaba.webx3.messageboard.dao.object; import java.util.Date; public class UserDO { private String username; private String password; private int id; private Date gmtModify; private Date gmtCreate; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public Date getGmtModify() { return gmtModify; } public void setGmtModify(Date gmtModify) { this.gmtModify = gmtModify; } public Date getGmtCreate() { return gmtCreate; } public void setGmtCreate(Date gmtCreate) { this.gmtCreate = gmtCreate; } }
MessageDO.java
package com.alibaba.webx3.messageboard.dao.object; import java.util.Date; public class MessageDO { private int id; private String title; private String author; private String content; private Date gmtModify; private Date gmtCreate; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getGmtModify() { return gmtModify; } public void setGmtModify(Date gmtModify) { this.gmtModify = gmtModify; } public Date getGmtCreate() { return gmtCreate; } public void setGmtCreate(Date gmtCreate) { this.gmtCreate = gmtCreate; } }
UserDAO.java
package com.alibaba.webx3.messageboard.dao; import com.alibaba.webx3.messageboard.dao.object.UserDO; public interface UserDAO { public boolean addUser(UserDO userDO); public boolean deleteUser(UserDO userDO); public UserDO getByUsername(String username); public boolean updateUser(UserDO userDO); }
MessageDAO.java
package com.alibaba.webx3.messageboard.dao; import java.util.List; import java.util.Map; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public interface MessageDAO { public boolean addMessage(MessageDO messageDO); public MessageDO getMessageById(int id); public List<MessageDO> getMessageList(Map<String, Integer> map); public boolean deleteMessageById(int id); public boolean updateMessage(MessageDO messageDO); }
UserDAOImpl.java
package com.alibaba.webx3.messageboard.dao.impl; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import com.alibaba.webx3.messageboard.dao.UserDAO; import com.alibaba.webx3.messageboard.dao.object.UserDO; public class UserDAOImpl extends SqlMapClientDaoSupport implements UserDAO { public boolean addUser(UserDO userDO) { Object result = getSqlMapClientTemplate().insert("insertUser", userDO); return ((Integer) result > 0); } public boolean deleteUser(UserDO userDO) { int result = getSqlMapClientTemplate().delete("deleteuser", userDO); return (result > 0); } public UserDO getByUsername(String username) { return (UserDO) getSqlMapClientTemplate().queryForObject("selectByUsername", username); } public boolean updateUser(UserDO userDO) { int result = getSqlMapClientTemplate().update("updateuser", userDO); return (result > 0); } }
MessageDAOImpl.java
package com.alibaba.webx3.messageboard.dao.impl; import java.util.List; import java.util.Map; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import com.alibaba.webx3.messageboard.dao.MessageDAO; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public class MessageDAOImpl extends SqlMapClientDaoSupport implements MessageDAO { public boolean addMessage(MessageDO messageDO) { Object result = getSqlMapClientTemplate().insert("insertMessage", messageDO); return ((Integer) result > 0); } public MessageDO getMessageById(int id) { return (MessageDO) getSqlMapClientTemplate().queryForObject("selectById", id); } @SuppressWarnings("unchecked") public List<MessageDO> getMessageList(Map<String, Integer> map) { return getSqlMapClientTemplate().queryForList("selectBylist", map); } public boolean deleteMessageById(int id) { int result = getSqlMapClientTemplate().delete("deleteMessage", id); return (result > 0); } public boolean updateMessage(MessageDO messageDO) { int result = getSqlMapClientTemplate().update("updateMessage", messageDO); return (result > 0); } }
UserService.java
package com.alibaba.webx3.messageboard.biz.service; import com.alibaba.webx3.messageboard.dao.object.UserDO; public interface UserService { public boolean addUser(UserDO userDO); public boolean deleteUser(UserDO userDO); public UserDO getByUsername(String username); public boolean updateUser(UserDO userDO); }
MessageService.java
package com.alibaba.webx3.messageboard.biz.service; import java.util.List; import java.util.Map; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public interface MessageService { public boolean addMessage(MessageDO messageDO); public MessageDO getMessageById(int id); public List<MessageDO> getMessageList(Map<String, Integer> map); public boolean deleteMessageById(int id); public boolean updateMessage(MessageDO messageDO); }
UserServiceImpl.java
package com.alibaba.webx3.messageboard.biz.service.impl; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.webx3.messageboard.biz.service.UserService; import com.alibaba.webx3.messageboard.dao.UserDAO; import com.alibaba.webx3.messageboard.dao.object.UserDO; public class UserServiceImpl implements UserService { @Autowired private UserDAO userDAO; public boolean addUser(UserDO userDO) { return userDAO.addUser(userDO); } public boolean deleteUser(UserDO userDO) { return userDAO.deleteUser(userDO); } public UserDO getByUsername(String username) { return userDAO.getByUsername(username); } public boolean updateUser(UserDO userDO) { return userDAO.updateUser(userDO); } }
MessageServiceImpl.java
package com.alibaba.webx3.messageboard.biz.service.impl; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.webx3.messageboard.biz.service.MessageService; import com.alibaba.webx3.messageboard.dao.MessageDAO; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public class MessageServiceImpl implements MessageService { @Autowired private MessageDAO messageDAO; public boolean addMessage(MessageDO messageDO) { return messageDAO.addMessage(messageDO); } public MessageDO getMessageById(int id) { return messageDAO.getMessageById(id); } public List<MessageDO> getMessageList(Map<String, Integer> map) { return messageDAO.getMessageList(map); } public boolean deleteMessageById(int id) { return messageDAO.deleteMessageById(id); } public boolean updateMessage(MessageDO messageDO) { return messageDAO.updateMessage(messageDO); } }
UserVO.java
package com.alibaba.webx3.messageboard.module.vo; public class UserVO { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
UserAction.java
package com.alibaba.webx3.messageboard.module.action; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.citrus.turbine.Context; import com.alibaba.citrus.turbine.Navigator; import com.alibaba.citrus.turbine.dataresolver.FormGroup; import com.alibaba.webx3.messageboard.biz.service.UserService; import com.alibaba.webx3.messageboard.dao.object.UserDO; import com.alibaba.webx3.messageboard.module.vo.UserVO; public class UserAction { @Autowired private UserService userService; //登陆 public void doLogin(@FormGroup("login") UserVO user,Context context, Navigator nav){ String username=user.getUsername(); String password=user.getPassword(); UserDO userdo=null; boolean success; //根据用户名获得用户记录 userdo=userService.getByUsername(username); if(userdo==null){ context.put("message", "用户名不存在!"); nav.forwardTo("index"); return; } //校验密码是否正确 if(password.equals(userdo.getPassword())){ success=true; } else{ success=false; } //判断执行转向和重定向 if(success){ context.put("username", user.getUsername()); nav.forwardTo("message/messageList"); }else{ context.put("message", "密码错误!"); nav.forwardTo("index"); } } //退出 public void doLogout(Navigator nav) { //退出操作 //转到首页 nav.redirectTo("messageBoardLink").withTarget("index"); } }
MessageAction.java
package com.alibaba.webx3.messageboard.module.action; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.citrus.turbine.Navigator; import com.alibaba.citrus.turbine.dataresolver.Param; import com.alibaba.citrus.turbine.dataresolver.Params; import com.alibaba.webx3.messageboard.biz.service.MessageService; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public class MessageAction { @Autowired private MessageService messageService; //添加留言 public void doAddMessage(@Params MessageDO messageDO, Navigator nav) { // 没有取到页面的数据 if (messageDO == null) { nav.redirectTo("messageBoardLink").withTarget("message/addMessage").withParameter("message", "页面提交失败!"); } boolean result = false; // 插入数据库 result = messageService.addMessage(messageDO); // 校验结果及跳转 if (result) { nav.redirectTo("messageBoardLink").withTarget("message/messageList"); } else { nav.redirectTo("messageBoardLink").withTarget("message/addMessage").withParameter("message", "数据库操作失败!"); } } //删除留言 public void doDelete(@Param(name = "messageId") int messageId, Navigator nav) { // 没有取到页面的数据 if (messageId <= 0) { nav.redirectTo("messageBoardLink").withTarget("message/messageList").withParameter("message", "页面提交失败!"); } boolean result = false; // 删除数据 result = messageService.deleteMessageById(messageId); // 校验结果及跳转 if (result) { nav.redirectTo("messageBoardLink").withTarget("message/messageList"); } else { nav.redirectTo("messageBoardLink").withTarget("message/messageList").withParameter("message", "数据库操作失败!"); } } //修改留言 public void doModifyMessage(@Params MessageDO messageDO, Navigator nav) { //生成修改时间 SimpleDateFormat df=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss"); //获取修改者 String modifyauthor = messageDO.getAuthor(); //去掉上次修改的作者信息 String content = messageDO.getContent(); if(!StringUtil.isBlank(content)){ int index = content.indexOf("-"); if(index>=0){ content = content.substring(0, index); } //生成修改信息 content=content+"------(此留言被用户 "+modifyauthor+" 修改过,时间: "+df.format(new Date())+")"; } else{ //生成修改信息 content="------(此留言被用户 "+modifyauthor+" 修改过,时间: "+df.format(new Date())+")"; } messageDO.setContent(content); messageDO.setAuthor(null); boolean result = false; // 插入数据库 result = messageService.updateMessage(messageDO); // 校验结果及跳转 if (result) { nav.redirectTo("messageBoardLink").withTarget("message/messageList"); } else { nav.redirectTo("messageBoardLink").withTarget("message/messageList").withParameter("message", "修改操作失败!"); } } }
RegisterAction.java
package com.alibaba.webx3.messageboard.module.action; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.citrus.turbine.Context; import com.alibaba.citrus.turbine.Navigator; import com.alibaba.citrus.turbine.dataresolver.FormGroup; import com.alibaba.webx3.messageboard.biz.service.UserService; import com.alibaba.webx3.messageboard.dao.object.UserDO; public class RegisterAction { @Autowired private UserService userService; //用户注册 public void doRegister(@FormGroup(name="register") UserDO user, Context context,Navigator nav ){ //检查已存在用户名,可以用jquery实现 UserDO reserDO =userService.getByUsername(user.getUsername()); if(reserDO!=null){ context.put("message", "用户名已存在,请重新注册!"); nav.forwardTo("register"); return; } //保存用户注册 UserDO userDO = new UserDO(); userDO.setUsername(user.getUsername()); userDO.setPassword(user.getPassword()); boolean result=false; result = userService.addUser(userDO); if(result){ context.put("username", user.getUsername()); nav.forwardTo("message/messageList"); }else{ context.put("message", "注册失败!"); nav.forwardTo("register"); } } }
addMessage.java
package com.alibaba.webx3.messageboard.module.screen.message; import com.alibaba.citrus.turbine.Context; import com.alibaba.citrus.turbine.dataresolver.Param; public class addMessage { public void execute(@Param(name="message") String message,Context context){ context.put("message", message); } }
MessageList.java
package com.alibaba.webx3.messageboard.module.screen.message; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.citrus.turbine.Context; import com.alibaba.citrus.turbine.dataresolver.Param; import com.alibaba.webx3.messageboard.biz.service.MessageService; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public class MessageList { @Autowired private MessageService messageService; public void execute(@Param(name="message") String message,Context context){ context.put("message", message); //获取登陆的用户名 //查出一部分内容 Map<String,Integer> map = new HashMap<String,Integer>(); map.put("from", 0); map.put("size", 10); List<MessageDO> messageList= messageService.getMessageList(map); if(messageList==null){ context.put("message", "数据库操作失败!"); return; } context.put("messageList", messageList); } }
ModifyMessage.java
package com.alibaba.webx3.messageboard.module.screen.message; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.citrus.turbine.Context; import com.alibaba.citrus.turbine.dataresolver.Param; import com.alibaba.webx3.messageboard.biz.service.MessageService; import com.alibaba.webx3.messageboard.dao.object.MessageDO; public class ModifyMessage { @Autowired private MessageService messageService; public void execute(@Param(name="messageId")int messageId,Context context){ MessageDO messageDO; messageDO = messageService.getMessageById(messageId); if(messageDO==null){ context.put("message", "获取数据失败!"); } else{ context.put("messageDO", messageDO); } } }
最后将这些类配置到biz-bean.xml中,然后将其配置到webx-messageboard.xml中,实现注入到spring容器中。
biz-bean.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd default-autowire="byName"> <!-- service beans --> <bean id="userService" class="com.alibaba.webx3.messageboard.biz.service.impl.UserServiceImpl" /> <bean id="messageService" class="com.alibaba.webx3.messageboard.biz.service.impl.MessageServiceImpl" /> <!-- DAO beans --> <bean id="userDAO" class="com.alibaba.webx3.messageboard.dao.impl.UserDAOImpl" /> <bean id="messageDAO" class="com.alibaba.webx3.messageboard.dao.impl.MessageDAOImpl" /> </beans>
webx-messageboard.xml
...... <!-- beans配置 --> <beans:import resource="common/biz-bean.xml" /> ......
相关推荐
使用Idea14.1.4和maven创建java web项目
基于maven创建web项目 基础环境 Myeclipse2013 Tomcat8.0 Jdk1.8 apache-maven-3.3.9 环境配置
idea使用maven创建web项目详细教程
项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶
java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一...
使用maven创建web项目,独立管理jar包资源,方便简单高效
使用Maven构建多模块项目
idea中利用maven创建web项目, 并通过tomcat进行部署,运行项目
maven创建父子结构工程
IDEA用maven创建springMVC项目和配置(XML配置和Java配置)
第一次使用maven在idea上创建的项目,配合着博客一块看。
Maven项目创建流程
SSM整合的Maven项目实现简单的登录控制模板,SSM整合的Maven项目实现简单的登录控制模板
来自 在Eclipse中用Maven创建一个Web项目 的附带项目源码 jdk1.8 博客地址 https://blog.csdn.net/rebornsgundam/article/details/105862362
maven是一款java包管理软件,有点像ruby的gem,本教程使用maven创建多模块项目!
用maven创建web项目后所需要修改的设置 否则项目将会报错
一步一步用Maven创建web项目,经过测试,与目前我做的大项目一致
资源名称:maven创建web项目教程 中文WORD版内容简介: Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 除了以程序构建能力为特色之外,还提供高级项目...
【java框架】Spring(3) -- Spring配置补充(基于Maven项目)(csdn)————程序
maven创建web工程