示例代码已上传 githubhttps://github.com/name-zj/springweb,有兴趣可下载,另附mysql运行脚本https://download.csdn.net/download/King_crazy/12438602
效果展示:
1,登录页
2. 主页面
效果就是这样了,下面是代码的结构层级
建立一个Spring Assistant项目,这里ideal使用的是社区版,如果你是用的是专业版,会稍有区别,好像是对应Spring initializr。
项目建完后,就可以开始你的表演了。
以登录的校验为开头讲解。首先,mysql里已经建好了相关表,上面给了运行文件。
1.role
2.user
3.user_role
然后,根据根据建立的数据表,创建实体类,放在com.zj.entity目录下:
1.User
package com.zj.service.entity;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private String username;
private String password;
private Integer isDelete;
private String roleName;
public Integer getIsDelete() {
return isDelete;
}
public void setIsDelete(Integer idDelete) {
this.isDelete = idDelete;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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 getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
2. Role
package com.zj.service.entity;
import java.io.Serializable;
public class Role implements Serializable {
private Integer id;
private String rolename;
private Integer isRead;
private Integer isWrite;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getRolename() {
return rolename;
}
public void setRolename(String rolename) {
this.rolename = rolename;
}
public Integer getIsRead() {
return isRead;
}
public void setIsRead(Integer isRead) {
this.isRead = isRead;
}
public Integer getIsWrite() {
return isWrite;
}
public void setIsWrite(Integer isWrite) {
this.isWrite = isWrite;
}
}
3.UserRole
package com.zj.service.entity;
import java.io.Serializable;
public class UserRole implements Serializable {
private Integer id;
private Integer userId;
private Integer roleId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
}
然后,定义要各实体对应的操作的方法。登录,那肯定涉及一个用户的查询,判定用户是否存在,所以先建一个user的mapper,用以数据库操作,放在com.zj.mapper目录下。这里使用mybatis注解的方式实现(有个小的注意点,比如"from user ",换行的话,在uses后边加个空格,要不然会和后面的连在一起变成"from userwhere"),注解实现比较简单,基本一看就会,就是在抽象方法上面写SQL。如果传过来的是User对象,以取username属性为例,则使用#{username}的方式,#{username}的意思是在使用,会调用这个对象实体类中定义的getUsername()方法;如果传的是个变量,比如int id,则直接用#{id}即可