SSM实战之商品信息管理系统《二》
1.前言
本系统属于SSM的常用功能整合使用练习。
涉及到SSM框架整合+前端框Bootstrap+Ajax校验+登录拦截器+图片文件上传+日期类型转换器+json格式传参等常用功能的使用。
上一篇点这里 完成了ssm的整合以及写了一个login.jsp页面,引入了Bootstrap和jquery。
下面开始完善登录功能。
使用ajax提交json数据,使用date日期类型转换器来完成登录功能。
2.SSM实战之登录功能完善
- 登录原理:我们在登录的时候,前端需要让你输入账户和密码,然后后台接收到这个数据以后,通过一层一层的传递,最后传到数据库当中,跟存储的数据进行对比。如果正确,那么你就登录成功。如果错误那么返回给你错误提示。
那么既然要跟数据库打交道了,我们就需要从底往上写。
不懂的可以参考:SSM框架下web项目运行流程
实现登录模块:
一. entity实体类:对应数据库表的字段,
生成getset方法并且写重定向tostring和重构父类。
二. Dao层接口:声明数据库操作方法
查询登录账户CheckLoginAndPwd方法
添加账号addUser方法。
三. mapper映射文件-写sql语句。
Id对应dao方法名:一个增加语句一个查询语句的sql。
四. service服务层:实现业务逻辑控制。
继续声明dao层的方法名。
五. Impl实现层:实现服务层里面的方法。
注解为service,实现接口,声明dao层对象,
写对应方法的返回值,dao对象来调用自身的方法。
六. Controller控制层:实现业务流程控制
声明注解controller,添加映射注解@RequestMapping,
指明当前路径URL。声明实体类对象。写对应的路径下的实现方法和控制信息。
七. 写前端view视图:login.jsp文件
引用json和ajax传递登录参数。
八. 写一个日期转换的工具类。
让涉及到日期的地方有一个固定格式显示。
好了,整理好了流程,我们就开始一一实现对应的代码。
首先要保证你的项目结构跟我的一样:
缺少的话,你就自己创建对应的包名.
一. 在entity包下新建一个User.java实体类:
代码如下:
package com.aaa.entity;
import java.util.Date;
/**
* @class_name:User
* @param: 1.User表
* @return: 用户实体类
* @author:Zoutao
* @createtime:2018年3月21日
*/
public class User {
private int id; // id
private String username; // 用户名
private String password; // 密码
private Date birthday; // 注册日期
private int sex; // 性别
private String address; // 地址
public int getId() {
return id;
}
public void setId(int 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 Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + ", birthday=" + birthday
+ ", sex=" + sex + ", address=" + address + "]";
}
}
二. Dao层接口:
在mapper包下新建一个UserMapper.java接口类:
代码如下:
package com.aaa.mapper;
import org.apache.ibatis.annotations.Param;
import com.aaa.entity.User;
/**
* @class_name:UserMapper
* @param: 2.dao层接口
* @return: 数据持久化
* @author:Zoutao
* @createtime:2018年3月21日
*/
public interface UserMapper {
// 查询登录账户-用户密码为参数
public User CheckLoginAndPwd(@Param("username") String name, @Param("password") String pwd);
// 注册用户
public void addUser(User user);
}
三. 在mapper包下新建一个UserMapper.xml:
代码如下:
<?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">
<!-- 1.指定映射的对象是usermapper类 -->
<mapper namespace="com.aaa.map