环境和配置文件都写好了啦,到了这里就先来一个注册与登录吧
1、设计用户表
大概这个样子就好了
这个是sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户名',
`pwd` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '密码',
`perms` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2、编写实体类
//编写实体类
public class User {
private int id;
private String name;
private String pwd;
private String perms;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPerms() {
return perms;
}
public void setPerms(String perms) {
this.perms = perms;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", perms=" + perms + "]";
}
public User(int id, String name, String pwd, String perms) {
super();
this.id = id;
this.name = name;
this.pwd = pwd;
this.perms = perms;
}
public User() {
super();
}
}
3、编写DAO层
public interface UserDao {
//查询单个用户的接口
User queryUser(@Param("name")String name,@Param("pwd")String pwd);
}
4、service层
没有特殊处理的,所以这里是和上面一样的
public interface UserService {
User queryUser(String name,String pwd);
}
impl实现层
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserDao userDao;
@Override
public User queryUser(String name, String pwd) {
// TODO Auto-generated method stub
return userDao.queryUser(name, pwd);
}
}
到这里的目录结构就是这样的
5、写mapper.xml
这个文件要放在resources下的mapper文件夹中,如果没有的话就自己新建一个 。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 注意这里的namespace 不要写错了 -->
<mapper namespace="com.liliya.dao.UserDao">
<!--根据用户名和密码查询单个用户-->
<select id="queryUser" parameterType="string" resultType="User">
select id,name,pwd,perms
from mybatis.user
where `name`=#{name} and `pwd`=#{pwd}
</select>
</mapper>
</mapper>
6、写一个表单
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="login" method="post">
用户名:<input type="text" name="name"/> <br>
密码:<input type="password" name="pwd"/>
<input type="submit" value="提交">
</form>
</body>
</html>
然后再写一个hello页面
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>欢迎页面</title>
</head>
<body>
<h1>你好鸭! ${name}</h1>
</body>
</html>
7、开始写controller
如果登录成功就跳转到hello界面
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public String name(String name,String pwd,Model model) {
User user = userService.queryUser(name, pwd);
if (user!=null) {
model.addAttribute("name", name);
return "hello";
}
return "index";
}
}
启动项目,发现404
右键项目,然后找到最后一个选项Properties > Deployment Assembly
选择这个Java Build Path Entries
然后这个时候再次启动项目
这个时候就已经正常了。
这里踩了一个坑,如果要SQL传入多个参数的话,需要在dao层使用@Param 注解来指定传入的参数。
到这里就算完成了!!!
接下来就是注册功能了
https://blog.csdn.net/zhihu_0/article/details/107701794