今天我们来说说注册的实现流程。要实现的效果如下:
业务流程为:
1、判断该用户是否存在
2、如果存在,提示用户“已被注册”
3、如果不存在,将用户名和密码存入数据库
所以对于后端来说,需要提供两个接口:
1、根据用户名查询此用户名是否存在
2、将用户名和密码存入数据库
controller层 |
在controller层中,进行了逻辑判断。
1、进行验证码的判断,如果错误,进行提示。
2、如果验证码正确,则将从后端查询到的值赋给tmpUser。如果tmpUser不为空,说明数据库中已有此用户名,提示用户“已被注册”。
3、如果tmpUser为空,则将密码用MD5加密后,将用户名和密码一同传输到service层。最后返回给用户“注册成功”。
备注一:
authUser里面存储的是从前端传过来的数据。
备注二:
不知读者是否会有疑问,0、1、2是什么意思呢?看看前端代码就明白了,这就类似于“暗号”。
那是怎么设置的呢?
service层 |
dao层 |
mapper层 |
mapper层是真正写sql语句的地方。
<insert id="createSelectivity" parameterType="com.online.college.core.auth.domain.AuthUser" flushCache="true"
useGeneratedKeys="true" keyProperty="id">
INSERT INTO t_auth_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="realname != null ">
realname,
</if>
<if test="username != null ">
username,
</if>
<if test="password != null ">
password,
</if>
</trim>
VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="realname != null ">
#{realname, jdbcType=VARCHAR},
</if>
<if test="username != null ">
#{username, jdbcType=VARCHAR},
</if>
<if test="password != null ">
#{password, jdbcType=VARCHAR},
</if>
</trim>
</insert>
在后者将用户名和密码存入数据库的sql中,用到了if这个动态sql语句,意思是:如果有这项,则存入;如果没有,就不存入。
小结 |
这只是一个简单的注册,记录下来,只是想记录下实现思路。
初次写这种纯记录的博客,不知如何下手,感觉写的条理有点乱,还请读者多包涵。如有不妥之处,欢迎交流。