Springboot+mybatis+mysql
用户基础信息存储表
列名 | 名称 | 类型 | 唯一否 | 可空否 | 外键否 | 默认值 | 备注 |
---|---|---|---|---|---|---|---|
UserId | 用户ID | int(11) | Y | N | 主键 | ||
UserName | 用户名 | varchar(200) | Y | N | |||
Password | 密码 | varchar(200) | N | ||||
NickName | 昵称 | varchar(200) | N | ||||
邮箱 | varchar(200) | Y | |||||
RegisterTime | 注册时间 | timestamp | 插入时间 | 插入时自动生成 | |||
Birth | 出生年月 | varchar(200) | 格式:yyyy-MM-dd | ||||
Fans | 粉丝数 | int(11) | 0 | ||||
Follow | 关注数 | int(11) | 0 | ||||
Score | 积分 | int(11) | 0 | ||||
HeadImgAddr | 头像地址 | varchar(200) | Y | ||||
Phone | 手机号码 | varchar(11) | Y | ||||
InvitationCode | 邀请码 | varchar(200) | Y | N | 每个账号自己的邀请码,用于推荐别人注册 |
SQL语句
create table User
(
UserId int auto_increment
comment '用户id',
UserName varchar(200) not null
comment '用户名',
Password varchar(200) not null
comment '密码',
NickName varchar(200) not null
comment '昵称',
Email varchar(200) null
comment '邮箱',
RegisterTime timestamp default CURRENT_TIMESTAMP not null
on update CURRENT_TIMESTAMP
comment '注册时间',
Fans int default '0' null
comment '粉丝数',
Follow int default '0' null
comment '关注',
Score int default '0' null
comment '积分',
HeadImgAddr varchar(200) null
comment '头像地址',
Phone varchar(11) null
comment '手机号码',
InvitationCode varchar(200) null
comment '邀请码',
Birth varchar(200) null
comment '出生年月',
constraint user_UserId_uindex
unique (UserId),
constraint user_UserName_uindex
unique (UserName)
)
comment '用户表';
alter table User
add primary key (UserId);
UserMapper
/**根据用户名查询用户*/
@Select("select * from User where UserName = #{UserName}")
User select(@Param("UserName") String userName);
UserService
@Autowired
private UserMapper userMapper;
public JSONObject loginJudge(String userName, String password, HttpSession session){
JSONObject json = new JSONObject();
User user = userMapper.select(userName);
if(user==null){
json.put("code",0);
json.put("msg","账号不存在");
return json;
}
/*
hash加密的密码判断方式
if(!new SHA1().encode(password).equals(user.getPassword())){
//SHA1是hash加密的工具类,采用sha1算法加密
json.put("code",0);
json.put("msg","账号密码不匹配");
return json;
}*/
if(!password.equals(user.getPassword())){
json.put("code",0);
json.put("msg","账号密码不匹配");
return json;
}
json.put("code",1);
json.put("msg","SUCCESS");
json.put("data",user);
//登录成功后放入添加session
session.setAttribute("user",user);
return json;
}
UserController
/**登录判断*/
@RequestMapping(value="/login-judge",method = RequestMethod.POST)
public JSONObject loginJudge(HttpServletRequest request, HttpSession session){
JSONObject json = new JSONObject();
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username==null||username.length()==0||password==null||password.length()==0){
json.put("code",0);
json.put("msg","账号密码不能为空");
return json;
}
json = userService.loginJudge(username,password,session);
return json;
}
html页面有个账号密码框和登录按钮就行
<input id="username" spellcheck=false class="form-control" name="username" type="text" size="18" alt="login" required="">
<input id="password" class="form-control" spellcheck=false name="password" type="password" size="18" alt="login" required="">
<button id="submit" type="submit" ripple>Sign inbutton>
ajax请求,点登录按钮后调用login函数
function login(username,password){
$("#submit").text("Loading...");
$.ajax({
type:'POST',
url:'/login-judge',
data:{"username":username,"password":password},
dataType:"json",
success:function(result){
if(result.code==0){
alert(result.msg);
}else{//登录成功
alert("登录成功");
}
},
error:function(result){
alert("Http请求出错!");
}
});
$("#submit").text("Sign in");
}