0727_实体设计+用户登录+类别分页展示
2020-07-29 11:46
20 查看
(1)实体设计
①实体设计图
②User实体类设计
package com.zr0726.myspring.po; import javax.persistence.*; import java.util.ArrayList; import java.util.Date; import java.util.List; @Entity @Table(name = "t_user") public class User { @Id //主键标识 @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String nickname; private String username; private String password; private String email; private String avatar; private Integer type; @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Temporal(TemporalType.TIMESTAMP) private Date updateTime; @OneToMany(mappedBy = "user") private List<News> newsList = new ArrayList<>(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } 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 String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public List<News> getNewsList() { return newsList; } public void setNewsList(List<News> newsList) { this.newsList = newsList; } @Override public String toString() { return "User{" + "id=" + id + ", nickname='" + nickname + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + ", avatar='" + avatar + '\'' + ", type=" + type + ", createTime=" + createTime + ", updateTime=" + updateTime + ", newsList=" + newsList + '}'; } }
③Type实体类设计
package com.zr0726.myspring.po; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Table(name="t_type") public class Type { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "type") private List<News> news = new ArrayList<>(); public Type(){ } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<News> getNews() { return news; } public void setNews(List<News> news) { this.news = news; } @Override public String toString() { return "Type{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
④News实体类设计
package com.zr0726.myspring.po; import javax.persistence.*; import java.util.Date; @Entity @Table(name = "t_news") public class News { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @Basic(fetch = FetchType.LAZY) @Lob private String content; private String firstPicture; private String flag; private String views; private boolean appreciation; private boolean shareStatement; private boolean commentabled; private boolean published; private boolean recommend; @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Temporal(TemporalType.TIMESTAMP) private Date updateTime; @ManyToOne private Type type; @ManyToOne private User user; public News(){ } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getFirstPicture() { return firstPicture; } public void setFirstPicture(String firstPicture) { this.firstPicture = firstPicture; } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } public String getViews() { return views; } public void setViews(String views) { this.views = views; } public boolean isAppreciation() { return appreciation; } public void setAppreciation(boolean appreciation) { this.appreciation = appreciation; } public boolean isShareStatement() { return shareStatement; } public void setShareStatement(boolean shareStatement) { this.shareStatement = shareStatement; } public boolean isCommentabled() { return commentabled; } public void setCommentabled(boolean commentabled) { this.commentabled = commentabled; } public boolean isPublished() { return published; } public void setPublished(boolean published) { this.published = published; } public boolean isRecommend() { return recommend; } public void setRecommend(boolean recommend) { this.recommend = recommend; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public Type getType() { return type; } public void setType(Type type) { this.type = type; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String toString() { return "News{" + "id=" + id + ", title='" + title + '\'' + ", content='" + content + '\'' + ", firstPicture='" + firstPicture + '\'' + ", flag='" + flag + '\'' + ", views='" + views + '\'' + ", appreciation=" + appreciation + ", shareStatement=" + shareStatement + ", commentabled=" + commentabled + ", published=" + published + ", recommend=" + recommend + ", createTime=" + createTime + ", updateTime=" + updateTime + ", type=" + type + ", user=" + user + '}'; } }
(2)用户登录
①编写LoginController类
package com.zr0726.myspring.web.admin; import com.zr0726.myspring.po.User; import com.zr0726.myspring.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.servlet.http.HttpSession; @Controller @RequestMapping("/admin") public class LoginController { @Autowired private UserService userService; @GetMapping public String loginPage(){ return "admin/login"; } @PostMapping("/login") public String login(@RequestParam String username, @RequestParam String password, HttpSession session, RedirectAttributes attributes){ User user = userService.checkUsers(username,password); if(user!=null){ user.setPassword(null); session.setAttribute("user",user); return "admin/index"; }else{ attributes.addFlashAttribute("message","用户名或密码错误"); return "redirect:/admin"; } } @GetMapping("/logout") public String logout(HttpSession session){ session.removeAttribute("user"); return "redirect:/admin"; } }
②用户登录界面
(3)类别分页展示
①编写TypeRepository类
package com.zr0726.myspring.dao; import com.zr0726.myspring.po.Type; import org.springframework.data.jpa.repository.JpaRepository; public interface TypeRepository extends JpaRepository<Type,Long> { }
②编写TypeServiceImpl类
import com.zr0726.myspring.dao.TypeRepository; import com.zr0726.myspring.po.Type; import com.zr0726.myspring.service.TypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @Service public class TypeServiceImpl implements TypeService { @Autowired private TypeRepository typeRepository; @Override public Page<Type> listType(Pageable pageable){ return typeRepository.findAll(pageable); } }
③编写TypeController类
package com.zr0726.myspring.web.admin; import com.zr0726.myspring.service.TypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.web.PageableDefault; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/admin") public class TypeController { @Autowired private TypeService typeService; @RequestMapping("/types") public String type(@PageableDefault(size = 3,sort = {"id"},direction = Sort.Direction.DESC) Pageable pageable, Model model){ model.addAttribute("page",typeService.listType(pageable)); return "admin/types"; } }
④界面展示
相关文章推荐
- Num54 boss08(添角色用户 & 权限用户分页 & 授权方法 &缓存权限数据&登录用户展示)
- mark--[Redis用户添加、分页、登录、注册、加关注案例]
- 一个很简单的用户登录设计
- PHP-用ThinkPHP和Bootstrap实现用户登录设计
- 我的实体引擎设计展示2
- 黑马程序员之c#学习笔记:用户登录验证码的设计
- ASP用户登录模块的设计
- python设计两个函数register和login完成用户的注册与登录,要求用户信息保存到user.txt文件中
- 如何设计出用户体验良好的登录/注册页面
- 如何设计用户登录
- 转载:如何设计一个可扩展的用户登录系统
- 【数据库课程设计】用户登录(二)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计
- 浅谈数据库用户表结构设计,第三方登录
- 基于shiro、SSM的用户注册登录设计
- 设计一个(安全、通用、灵活、可扩展)的用户登录系统
- 如何设计出用户体验良好的登录/注册页面
- Mybatis+SpringMVC的简单学生管理系统(提供数据库设计)|登录、验证、用户等级不同功能不同、留言、增删改查等
- 使用JavaWeb实现图书管理系统的增删改查,以及数据的分页,跳转,查询,用户登录......
- [爬虫]抓取百万知乎用户设计之实体设计