import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data // get/set 方法
@AllArgsConstructor//有参构造器
@NoArgsConstructor//无参构造器
@Table(name = “userlogin”)
public class UserLogin {
private String username;
private String password;
public String getUsername() {
return username;
}
}
2.5创建数据库和数据表
我创建login库,创建userlogin表,字段为username和password
2.6 连接数据库
在IDEA右边选择:
Database——> ——> Data Source——> Mysql
如果测试不通:出现如下:
Server returns invalid timezone. Need to set ‘serverTimezone’ property.
是数据库时区问题
解决方法:
打开开最右侧 Advanced,找到 serverTimezone,在右侧value处填写 GMT,保存即可
2.7Mapper层(Dao):数据库持久层
在mapper包下建UserLoginMapper接口
package com.huangkd.weblogindemo.mapper;
import com.huangkd.weblogindemo.pojo.UserLogin;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserLoginMapper {
//定义增删改查方法
//查询所有
public List queryAll();
//添加数据
public int add(UserLogin userLogin);
//根据用户名查询
public UserLogin queryByUsername(String username);
}
在resources下建UserLoginMapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>select * from userlogin
insert into userlogin values (#{username},#{password})
select * from userlogin where username=#{username}
2.8 Service层:业务逻辑层
在services下新建接口UserLoginServicesI和类UserLoginServicesImpl
UserLoginServicesI接口:
import com.huangkd.weblogindemo.pojo.UserLogin;
import java.util.List;
public interface UserLoginServicesl {
//查询所有
public List queryAll();
//添加数据
public int add(UserLogin userLogin);
//根据用户名查询
public UserLogin queryByUsername(String username);
}
UserLoginServicesImpl类:
package com.huangkd.weblogindemo.services;
import com.huangkd.weblogindemo.mapper.UserLoginMapper;
import com.huangkd.weblogindemo.pojo.UserLogin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserLoginServicesImpl implements UserLoginServicesl {
@Autowired
//Service层调用dao层/mapper层 一般在service层中创建一个dao/mapper层对象
//用对象调用对应的增删改查方法
UserLoginMapper userLoginMapper;
@Override
public List queryAll() {
return userLoginMapper.queryAll();
}
@Override
public int add(UserLogin userLogin) {
return userLoginMapper.add(userLogin);
}
@Override
public UserLogin queryByUsername(String username) {
return userLoginMapper.queryByUsername(username);
}
}
2.9 Controller层:控制层
在controller包下创建MyController类:
package com.huangkd.weblogindemo.controller;
import com.huangkd.weblogindemo.pojo.UserLogin;
import com.huangkd.weblogindemo.services.UserLoginServicesImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MyController {
//controller层调用service层
//创建一个service层对象
@Autowired
UserLoginServicesImpl userLoginServices;
//登录
@RequestMapping(“/toLogin”)
public String toLogin() {
return “login”;
}
@RequestMapping(“/loginSuccess”)
public String loginSuccess(Model model, UserLogin userLogin) {
//查询用户名是否存在
UserLogin userLogin1 = userLoginServices.queryByUsername(userLogin.getUsername());
if (userLogin1 != null) { //如果用户名存在
if (userLogin1.getPassword().equals(userLogin.getPassword())) {
System.out.println(userLogin1.toString());
return “success”;
} else {
model.addAttribute(“data”, “密码不正确”);
return “login”;
}
} else { //用户名不存在,直接返回到登录页面
model.addAttribute(“data”, “该用户不存在,请先注册”);
return “login”;
}
}
//注册
@RequestMapping(“/toRegister”)
public String toRegister() {
return “register”;
}
@RequestMapping(“/toRegisterSuccess”)
public String toRegisterSuccess(Model model,UserLogin userLogin) {
//添加一条记录到数据库中
int add = userLoginServices.add(userLogin);
System.out.println(“插入数据成功”);
model.addAttribute(“data”,“注册成功,请登录”);
return “login”;
}
}
2.10 前端页面
login.html:登录页面
登录界面
用户名:
密码:
regsister.html:注册页面
注册界面
用户名:
密码:
确认密码:
success.html:成功页面
成功页面我复制本人csdn首页源代码
登录:
注册: