SpringMVC+ibatis+MySQL+MongoDB构建博客系统(二)
来源:互联网 发布:微信公众号对接数据库 编辑:程序博客网 时间:2024/04/30 07:29
三、dao层的实现
构建UserDao接口,并使用@Respository将其注射到spring容器中。
package com.jcx.blog.dao;import com.jcx.blog.domain.po.User;import org.springframework.stereotype.Repository;import java.util.List;/** * Created by jichenxiao on 2016/4/6. */@Repositorypublic interface UserDao { List<User> selectAllUser(); public void addUser(User user); public User selectUserByNickname(String nickname);}在编写UserDao的实现类之前,需要编写BaseDao类,因为所有的实现类都要集成
package com.jcx.blog.dao;/** * Created by jichenxiao on 2016/4/6. */public class BaseDao extends org.springframework.orm.ibatis.support.SqlMapClientDaoSupport{ @javax.annotation.Resource(name = "sqlMapClient") private com.ibatis.sqlmap.client.SqlMapClient sqlMapClient; @javax.annotation.PostConstruct public void initSqlMapClient(){ super.setSqlMapClient(sqlMapClient); }}接下来开始编写实现类。
package com.jcx.blog.dao.impl;import com.jcx.blog.dao.BaseDao;import com.jcx.blog.dao.UserDao;import com.jcx.blog.domain.po.User;import org.springframework.stereotype.Component;import java.util.List;/** * Created by jichenxiao on 2016/4/6. */@Component("userDao")public class UserDaoImpl extends BaseDao implements UserDao { @Override public List<User> selectAllUser() { return (List<User>) getSqlMapClientTemplate().queryForList("User.selectAllUser"); } @Override public void addUser(User user) { getSqlMapClientTemplate().insert("User.addUser", user); } @Override public User selectUserByNickname(String nickname) { return (User)getSqlMapClientTemplate().queryForObject("User.selectUserByNickname",nickname); }}
四、service层
服务层主要完成了对dao层的调用以及一些其他的逻辑操作。用户管理服务通过UserSercvice实现,UserService.java如下。package com.jcx.blog.service;import com.jcx.blog.domain.po.User;import javax.servlet.http.HttpServletRequest;import java.util.List;/** * Created by jichenxiao on 2016/4/7. */public interface UserService { List<User> selectAllUser(); public void addUser(HttpServletRequest request); public String selectUserByNickname(HttpServletRequest request);}UserServiceImpl.java实现类如下所示,主要完成了对dao层的调用。
<span style="font-size:14px;">package com.jcx.blog.service.impl;import com.jcx.blog.dao.UserDao;import com.jcx.blog.domain.po.User;import com.jcx.blog.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import javax.servlet.http.HttpServletRequest;import java.util.List;/** * Created by jichenxiao on 2016/4/7. */@Service(value = "UserService")public class UserServiceImpl implements UserService{ @Autowired private UserDao userDao; @Override public List<User> selectAllUser() { return userDao.selectAllUser(); } @Transactional @Override public void addUser(HttpServletRequest request) { String nickname = request.getParameter("nickname"); String password = request.getParameter("password"); String first_name = request.getParameter("first_name"); String last_name = request.getParameter("last_name"); User user = new User(); user.setNickname(nickname); user.setPassword(password); user.setFirst_name(first_name); user.setLast_name(last_name); userDao.addUser(user); } @Override public String selectUserByNickname(javax.servlet.http.HttpServletRequest request) { String nickname = request.getParameter("nickname"); String password = request.getParameter("password"); User user = userDao.selectUserByNickname(nickname); if(user != null && user.getPassword().equals(password)) return "success"; else return "fail"; }}</span><span style="font-family:Microsoft YaHei;font-size:18px;"></span>
五、控制层
控制层即controller在web模块中,作用是接收前端的请求,并调用服务层进行相应的处理。UserController如下所示。
package com.jcx.blog.controller;import com.jcx.blog.domain.po.User;import com.jcx.blog.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import javax.servlet.http.HttpServletRequest;import java.util.List;/** * Created by jichenxiao on 2016/4/7. */@Controllerpublic class UserController { @Autowired private UserService userService; @RequestMapping(value = "/", method = RequestMethod.GET) public String index(){ return "index"; } @RequestMapping(value = "/error", method = RequestMethod.GET) public String error(){ return "error"; } @RequestMapping(value = "/userlist", method = RequestMethod.GET) public String getUserList(ModelMap modelMap){ List<User> userList = userService.selectAllUser(); modelMap.addAttribute("userList",userList); return "userList"; } @RequestMapping(value = "/addUserP", method = RequestMethod.POST) public String addUser(HttpServletRequest request){ userService.addUser(request); return "redirect:/userlist"; } @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(){ return "login"; } @RequestMapping(value = "/logincheck", method = RequestMethod.POST) public String loginCheck(HttpServletRequest request){ String result = userService.selectUserByNickname(request); if(result.equals("success")) return "redirect:/userlist"; else return "redirect:/error"; }}
至此,所有后台开发的流程已经完成,视图层将在后续继续开发,目前使用JSP进行调试。
未完待续。
0 0
- SpringMVC+ibatis+MySQL+MongoDB构建博客系统(二)
- SpringMVC+ibatis+MySQL+MongoDB构建博客系统(一)
- 构建个人博客系统二(连接mysql数据库)
- maven+springmvc+spring+ibatis+velocity+mysql搭建简单登陆系统
- springmvc + hibernate构建web工程(二)
- NodeJS搭建博客系统(二)构建一个markdown页面
- (二)springmvc--构建一个springmvc web项目
- easyui+spring+springmvc+ibatis学习(二)----之登陆实现
- spring+springMVC+mybatis框架 兼容mongodb(mysql+mongodb)
- 博客小系统(二)
- iBATIS系统学习笔记二
- Spring Boot+JPA+Mysql+ThymeLeaf快速构建CURD系统(二)搭建SpringBoot工程
- Spring Boot+JPA+Mysql+ThymeLeaf快速构建CURD系统(二)搭建SpringBoot工程
- 【mongodb系统学习之十】mongodb查询(二)
- 注册MongoDB为系统服务(二)
- J2EE项目系列(二)--博客管理系统(Maven+SpringMVC+Hibernate以及附加分页和一对多查询功能)
- maven构建项目二(添加配置文件)SpringMvc+Spring+Mybatis
- 构建自己的 LINUX 系统(二)
- GitHub:怎样在参与开发时同步你的远程代码仓库
- Struts2知识点总结大全
- iOS多语言功能开发小结
- 制作mac 系统盘
- MongoDB学习 (六):查询
- SpringMVC+ibatis+MySQL+MongoDB构建博客系统(二)
- WEB前端常见面试题汇总
- 学习笔记之被老师问倒的问题
- 【学习笔记----数据结构05-栈与队列】
- Android Studio老是出现Cannot reload AVD list: for input string: ""这个错误
- J2SE(三)Java基本数据类型
- Struts2的properties文件
- 一维数组和二位数组作为函数参数进行传递的方式
- Spring笔记1