您的位置:首页 > 编程语言 > Java开发

使用IDEA创建Spring Boot项目, 整合Mybatis ,连接MySql数据库,实现简单的登录注册功能

2019-03-16 20:53 1201 查看

前言:
这是本人的第一篇的博客,本人目前大三下学期,计算机专业,主要学习Java后端,之前学习Java都是使用的eclipse,现在刚刚接触IDEA,今天第一次使用IDEA搭建项目,所以在此记录一下搭建项目过程,也从此开启自己的写博客之旅。

思路:
1.首先创建一个保存用户信息的数据库(本人使用的MySQL)。
2.使用IDEA创建Spring Boot项目。
3.修改配置文件。
4.整合mybatis。
5.实现登录注册的业务逻辑与页面。

步骤:
一、新建数据库
1.使用Navicat for MySQL创建数据库,并新建用户信息表

SET FOREIGN_KEY_CHECKS=0;

-- --------------
4000
--------------
-- Table structure for `zs_user`
-- ----------------------------
DROP TABLE IF EXISTS `zs_user`;
CREATE TABLE `zs_user` (
`pk_user_id` varchar(32) NOT NULL COMMENT '用户主键id',
`uuid` varchar(11) DEFAULT NULL COMMENT '用户的8位为随机id用作前端显示的唯一用户id',
`user_name` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(50) NOT NULL COMMENT '密码',
`mobile` varchar(20) DEFAULT NULL COMMENT '手机号',
`nick_name` varchar(255) DEFAULT NULL COMMENT '昵称',
`interest` varchar(255) DEFAULT NULL COMMENT '兴趣爱好',
`gender` int(1) DEFAULT NULL COMMENT '姓别 1-男,0-女',
`img_url` varchar(255) DEFAULT NULL COMMENT '头像',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`regist_time` datetime DEFAULT NULL COMMENT '注册时间',
`status` int(1) DEFAULT NULL COMMENT '用户状态:0:异常 1:已删除',
`area_id` int(11) DEFAULT NULL COMMENT '区域_id',
`city_id` int(11) DEFAULT NULL COMMENT '市_id',
`province_id` int(11) DEFAULT NULL COMMENT '省_id',
PRIMARY KEY (`pk_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of zs_user
-- ----------------------------

二、使用IDEA创建Spring Boot项目。(百度安装IDEA)
1.打开IDE选择project,如下图:
2.选择Spring Initializr,然后Next(如果没有此选项,请移步至第三步),如下图:
3.如果没有Spring Initializr,选择File–>Settings–>Plugins,搜索Spring Boot,选择Spring Initializ,然后Install。
4.根据自己需求修改项目名称。
5.在左侧Web中选择Web,在Template Engines中选择Thymeleaf(模板),在SQL中选择MySQL、JDBC、MyBatis,然后Next,项目保存路径根据自己的电脑去修改。
三、修改配置文件。
1.新建的项目中application.properties文件是空的,我们需要在里面去配置datasource,MySql的用户名与密码根据的自己的来,如下:

#port
server.port=8080
#datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zhou?noAccessToProcedureBodies=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver

四、使用spring boot整合mybatis。
1.在application.properties文件中添加mybatis配置。如下:

#mybatis
mybatis.type-aliases-package=com.zhou.entity
mybatis.mapper-locations=classpath:mapper/*.xml

2.在pom.xml文件中添加mybatis自动生成代码插件代码片段(添加在build中)

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>

3.在resource下创建generator文件夹,并在文件夹中创建generatorConfig.xml,其中targetPackage表示包名,targetProject表示mybatis自动生成的代码的存放文字,本人是放在本地磁盘中,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 选择你的本地的数据库驱动包-->
<classPathEntry  location="F:\MySQL\mysql-connector\mysql-connector-java-5.1.46\mysql-connector-java-5.1.46-bin.jar"/>
<context id="DB2Tables"  targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库连接驱动-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/zhou" userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类的包名和位置-->
<javaModelGenerator targetPackage="com.zhou.entity.user" targetProject="E:/zhou-gene/entity">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成XML映射文件的包名和位置-->
<sqlMapGenerator targetPackage="resources.mapper" targetProject="E:/zhou-gene/mapper">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO接口的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.zhou.dao.user" targetProject="E:/zhou-gene/dao">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="zs_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>

4.选择Run→Edit Configurations,然后选择maven,如果没有maven选项的就点击+号添加maven,如果还没有就去百度idea maven配置,在此就不做详细介绍了。接下来配置Command line,在后面写入:mybatis-generator:generate -e,修改Name,如下图:
5.完成上述操作后,点击run,出现如下图表示成功生成。
6.将生成的代码对应放在你事先设置的targetPackage中。
User用户实体类:

package com.zhou.entity.user;

import java.util.Date;

public class User {
private String pkUserId;

private String uuid;

private String userName;

private String password;

private String mobile;

private String nickName;

private String interest;

private Integer gender;

private String imgUrl;

private String email;

private Date registTime;

private Integer status;

private Integer areaId;

private Integer cityId;

private Integer provinceId;

public String getPkUserId() {
return pkUserId;
}

public void setPkUserId(String pkUserId) {
this.pkUserId = pkUserId == null ? null : pkUserId.trim();
}

public String getUuid() {
return uuid;
}

public void setUuid(String uuid) {
this.uuid = uuid == null ? null : uuid.trim();
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}

public String getMobile() {
return mobile;
}

public void setMobile(String mobile) {
this.mobile = mobile == null ? null : mobile.trim();
}

public String getNickName() {
return nickName;
}

public void setNickName(String nickName) {
this.nickName = nickName == null ? null : nickName.trim();
}

public String getInterest() {
return interest;
}

public void setInterest(String interest) {
this.interest = interest == null ? null : interest.trim();
}

public Integer getGender() {
return gender;
}

public void setGender(Integer gender) {
this.gender = gender;
}

public String getImgUrl() {
return imgUrl;
}

public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl == null ? null : imgUrl.trim();
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}

public Date getRegistTime() {
return registTime;
}

public void setRegistTime(Date registTime) {
this.registTime = registTime;
}

public Integer getStatus() {
return status;
}

public void setStatus(Integer status) {
this.status = status;
}

public Integer getAreaId() {
return areaId;
}

public void setAreaId(Integer areaId) {
this.areaId = areaId;
}

public Integer getCityId() {
return cityId;
}

public void setCityId(Integer cityId) {
this.cityId = cityId;
}

public Integer getProvinceId() {
return provinceId;
}

public void setProvinceId(Integer provinceId) {
this.provinceId = provinceId;
}
}

UserMapper.java 是mapper接口类:

package com.zhou.dao.user;

import com.zhou.entity.user.User;
import com.zhou.entity.user.UserInfo;

public interface UserMapper {
int deleteByPrimaryKey(String pkUserId);

int insert(User record);

int insertSelective(User record);

User selectByPrimaryKey(String pkUserId);

int updateByPrimaryKeySelective(User record);

int updateByPrimaryKey(User record);

}

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" >
<mapper namespace="com.zhou.dao.user.UserMapper" >
<resultMap id="BaseResultMap" type="com.zhou.entity.user.User" >
<id column="pk_user_id" property="pkUserId" jdbcType="VARCHAR" />
<result column="uuid" property="uuid" jdbcType="VARCHAR" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="mobile" property="mobile" jdbcType="VARCHAR" />
<result column="nick_name" property="nickName" jdbcType="VARCHAR" />
<result column="interest" property="interest" jdbcType="VARCHAR" />
<result column="gender" property="gender" jdbcType="INTEGER" />
<result column="img_url" property="imgUrl" jdbcType="VARCHAR" />
<result column="email" property="email" jdbcType="VARCHAR" />
<result column="regist_time" property="registTime" jdbcType="TIMESTAMP" />
<result column="status" property="status" jdbcType="INTEGER" />
<result column="area_id" property="areaId" jdbcType="INTEGER" />
<result column="city_id" property="cityId" jdbcType="INTEGER" />
<result column="province_id" property="provinceId" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
pk_user_id, uuid, user_name, password, mobile, nick_name, interest, gender, img_url,
email, regist_time, status, area_id, city_id, province_id
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from zs_user
where pk_user_id = #{pkUserId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from zs_user
where pk_user_id = #{pkUserId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.zhou.entity.user.User" >
insert into zs_user (pk_user_id, uuid, user_name,
password, mobile, nick_name,
interest, gender, img_url,
email, regist_time, status,
area_id, city_id, province_id
)
values (#{pkUserId,jdbcType=VARCHAR}, #{uuid,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR},
#{interest,jdbcType=VARCHAR}, #{gender,jdbcType=INTEGER}, #{imgUrl,jdbcType=VARCHAR},
#{email,jdbcType=VARCHAR}, #{registTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER},
#{areaId,jdbcType=INTEGER}, #{cityId,jdbcType=INTEGER}, #{provinceId,jdbcType=INTEGER}
)
</insert>
<insert id="insertSelective" parameterType="com.zhou.entity.user.User" >
insert into zs_user
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="pkUserId != null" >
pk_user_id,
</if>
<if test="uuid != null" >
uuid,
</if>
<if test="userName != null" >
user_name,
</if>
<if test="password != null" >
password,
</if>
<if test="mobile != null" >
mobile,
</if>
<if test="nickName != null" >
nick_name,
</if>
<if test="interest != null" >
interest,
</if>
<if test="gender != null" >
gender,
</if>
<if test="imgUrl != null" >
img_url,
</if>
<if test="email != null" >
email,
</if>
<if test="registTime != null" >
regist_time,
</if>
<if test="status != null" >
status,
</if>
<if test="areaId != null" >
area_id,
</if>
<if test="cityId != null" >
city_id,
</if>
<if test="provinceId != null" >
province_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="pkUserId != null" >
#{pkUserId,jdbcType=VARCHAR},
</if>
<if test="uuid != null" >
#{uuid,jdbcType=VARCHAR},
</if>
<if test="userName != null" >
#{userName,jdbcType=VARCHAR},
</if>
<if test="password != null" >
#{password,jdbcType=VARCHAR},
</if>
<if test="mobile != null" >
#{mobile,jdbcType=VARCHAR},
</if>
<if test="nickName != null" >
#{nickName,jdbcType=VARCHAR},
</if>
<if test="interest != null" >
#{interest,jdbcType=VARCHAR},
</if>
<if test="gender != null" >
#{gender,jdbcType=INTEGER},
</if>
<if test="imgUrl != null" >
#{imgUrl,jdbcType=VARCHAR},
</if>
<if test="email != null" >
#{email,jdbcType=VARCHAR},
</if>
<if test="registTime != null" >
#{registTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null" >
#{status,jdbcType=INTEGER},
</if>
<if test="areaId != null" >
#{areaId,jdbcType=INTEGER},
</if>
<if test="cityId != null" >
#{cityId,jdbcType=INTEGER},
</if>
<if test="provinceId != null" >
#{provinceId,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.zhou.entity.user.User" >
update zs_user
<set >
<if test="uuid != null" >
uuid = #{uuid,jdbcType=VARCHAR},
</if>
<if test="userName != null" >
user_name = #{userName,jdbcType=VARCHAR},
</if>
<if test="password != null" >
password = #{password,jdbcType=VARCHAR},
</if>
<if test="mobile != null" >
mobile = #{mobile,jdbcType=VARCHAR},
</if>
<if test="nickName != null" >
nick_name = #{nickName,jdbcType=VARCHAR},
</if>
<if test="interest != null" >
interest = #{interest,jdbcType=VARCHAR},
</if>
<if test="gender != null" >
gender = #{gender,jdbcType=INTEGER},
</if>
<if test="imgUrl != null" >
img_url = #{imgUrl,jdbcType=VARCHAR},
</if>
<if test="email != null" >
email = #{email,jdbcType=VARCHAR},
</if>
<if test="registTime != null" >
regist_time = #{registTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null" >
status = #{status,jdbcType=INTEGER},
</if>
<if test="areaId != null" >
area_id = #{areaId,jdbcType=INTEGER},
</if>
<if test="cityId != null" >
city_id = #{cityId,jdbcType=INTEGER},
</if>
<if test="provinceId != null" >
province_id = #{provinceId,jdbcType=INTEGER},
</if>
</set>
where pk_user_id = #{pkUserId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.zhou.entity.user.User" >
update zs_user
set uuid = #{uuid,jdbcType=VARCHAR},
user_name = #{userName,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
mobile = #{mobile,jdbcType=VARCHAR},
nick_name = #{nickName,jdbcType=VARCHAR},
interest = #{interest,jdbcType=VARCHAR},
gender = #{gender,jdbcType=INTEGER},
img_url = #{imgUrl,jdbcType=VARCHAR},
email = #{email,jdbcType=VARCHAR},
regist_time = #{registTime,jdbcType=TIMESTAMP},
status = #{status,jdbcType=INTEGER},
area_id = #{areaId,jdbcType=INTEGER},
city_id = #{cityId,jdbcType=INTEGER},
province_id = #{provinceId,jdbcType=INTEGER}
where pk_user_id = #{pkUserId,jdbcType=VARCHAR}
</update>
</mapper>

五、实现登录注册的业务逻辑与页面。
1.本人的项目结构如下:
2.介绍一下个各类作用:
(1)DataUtils时间工具类,用于获取当前时间。

package com.zhou.common.utils;

import java.util.Date;

public class DataUtils {

/**
* 获取当前事件
*/
public static Date getCurrentDate() {
return new Date();
}
}

(2)UUIDUtils是生成UUID的工具类(32位随机主键,与11位用户唯一标识id,此步主要用与本人以后需用)

package com.zhou.common.utils;

import java.util.Random;
import java.util.UUID;

/**
*
* @ClassName: UUIDUtils
* @Description:  UUID生成工具,用于生成32位的UUID
*/
public final class UUIDUtils {

public UUIDUtils() {

}

/**
* 自动生成32位的UUID,对应数据库会员表的主键,进行插入用
*
* @return
*/
public static String getPkUUID() {
return UUID.randomUUID().toString().replace("-", "");
}

/**
* 自动生成11位的UID,对应会员特殊标识
*
* @return
*/
public static String getUserUUID() {
Random random = new Random();
String result = "";
for (int i = 0; i < 11; i++) {
//首字母不能为0
result += (random.nextInt(9) + 1);
}
return result;
}
}

(3)UserInfo实体类用于查询用户信息成功返回的对象(此步也主要是因为本人后面有用)。
UserInfo.java

package com.zhou.entity.user;

import java.util.Date;

public class UserInfo {
private String uuid;

private String userName;

private String mobile;

private String nickName;

private String interest;

private Integer gender;

private String imgUrl;

private String email;

private Date registTime;

public String getUuid() {
return uuid;
}

public void setUuid(String uuid) {
this.uuid = uuid == null ? null : uuid.trim();
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}

public String getMobile() {
return mobile;
}

public void setMobile(String mobile) {
this.mobile = mobile == null ? null : mobile.trim();
}

public String getNickName() {
return nickName;
}

public void setNickName(String nickName) {
this.nickName = nickName == null ? null : nickName.trim();
}

public String getInterest() {
return interest;
}

public void setInterest(String interest) {
this.interest = interest == null ? null : interest.trim();
}

public Integer getGender() {
return gender;
}

public void setGender(Integer gender) {
this.gender = gender;
}

public String getImgUrl() {
return imgUrl;
}

public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl == null ? null : imgUrl.trim();
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}

public Date getRegistTime() {
return registTime;
}

public void setRegistTime(Date registTime) {
this.registTime = registTime;
}
}

3.新建业务层接口UserService

package com.zhou.service.user;

import com.zhou.entity.user.UserInfo;

public interface UserService {
/**
* 用户登录
* @param userName 用户名
* @param password 密码
* @return UserInfo 用户信息
*/
public UserInfo login(String userName,String password);

/**
* 用户注册
* @param userName 用户名
* @param password 密码
*/
public  void  register(String userName,String password);
}

4.使用用户名和密码登录,就需要使用用户名+密码两个参数去查询用户信息,自动生成的mapper接口中没有能满足的接口,所以就需要自己写一个selectByNameAndPwd接口
在UserMapper.java中添加

/**
*
* 通过用户名与密码查询用户信息
* @param record
* @return
*/
public UserInfo selectByNameAndPwd(User record);

在UserMapper.xml中添加

<select id="selectByNameAndPwd" resultType="com.zhou.entity.user.UserInfo" parameterType="com.zhou.entity.user.User" >
SELECT
s.uuid AS uuid,
s.user_name AS userName,
s.mobile AS mobile,
s.nick_name AS nickName,
s.interest AS interest,
s.gender AS gender,
s.img_url AS imgUrl,
s.email AS email,
s.regist_time AS registTime
FROM zs_user s
WHERE 1=1
<if test="userName != null and userName != ''">
and s.user_name = #{userName,jdbcType=VARCHAR}
</if>
<if test="password != null and password != ''">
and s.password = #{password,jdbcType=VARCHAR}
</if>
</select>

5.新增业务层UserService的实现类UserServiceImpl(登录注册的业务逻辑就在其中了,目前只做了简单的数据库操作,很多严格的业务逻辑根据自己需求添加)

package com.zhou.serviceImpl.user;

import com.zhou.common.utils.DataUtils;
import com.zhou.common.utils.UUIDUtils;
import com.zhou.dao.user.UserMapper;
import com.zhou.entity.user.User;
import com.zhou.entity.user.UserInfo;
import com.zhou.service.user.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;

@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;

/**
* 用户登录
* @param userName 用户名
* @param password 密码
* @return UserInfo 用户信息
*/
@Override
public UserInfo login(String userName, String password){
if (userName ==null || password == null){
//TODO异常处理后续完成
System.out.println("用户名或密码为空!");
}
User user = new User();
user.setUserName(userName);
user.setPassword(password);
UserInfo userInfo = userMapper.selectByNameAndPwd(user);
if (userInfo == null){
//TODO异常处理后续完成
System.out.println("用户名或密码错误");
}
return userInfo;
}

/**
* 用户注册
* @param userName 用户名
* @param password 密码
*/
@Override
public  void  register(String userName,String password){
if (userName ==null || password == null){
//TODO异常处理后续完成
System.out.println("用户名或密码为空!");
}
User user = new User();
String pkUserId = UUIDUtils.getPkUUID();
String uuId = UUIDUtils.getUserUUID();
Date registerTime = DataUtils.getCurrentDate();
user.setPkUserId(pkUserId);
user.setUuid(uuId);
user.setUserName(userName);
user.setPassword(password);
user.setRegistTime(registerTime);
int count = 0;
count = userMapper.insert(user);
if (count == 0){
//TODO异常处理后续完成
System.out.println("新增用户失败");
}
}
}

6.新建控制层UserController.java(简单的处理了逻辑)

package com.zhou.controller.user;

import com.zhou.entity.user.UserInfo;
import com.zhou.service.user.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@RequestMapping(value = {"/zhou"})
@Controller
public class UserController {
@Autowired
UserService userService;

/**
* 跳转到登录测试页面
* @return 登录页面
*/
@RequestMapping(value = {"user/loginPage"})
public String loginHtml(){
return "user/login";
}

/**
* 跳转到注册测试页面
* @return 注册页面
*/
@RequestMapping(value = {"user/registerPage"})
public String registerPage(){
return "user/register";
}

/**
* 用户注册
*/
@RequestMapping(value = {"user/register"})
@ResponseBody
public String register(String userName,String password){
//TODO异常处理后续完成
userService.register(userName,password);
System.out.println("注册成功");
return "注册成功";
}

/**
* 用户登录
*/
@RequestMapping(value = {"user/login"})
public String login(String userName,String password){
UserInfo userInfo = userService.login(userName,password);
if(userInfo == null){
//TODO异常处理后续完成
return "登录失败";
}else {
System.out.println("登录用户信息:"+userInfo.toString());
}
return "登录成功";
}
}

7.由于主要是介绍后端的操作,所以前端的代码就比较简略与丑了。
登录测试页面login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录测试</title>
</head>
<div>
<form action="/zhou/user/login" method="post">
用户名:<input type="text" name="userName" /><br>
密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password" /><br>
<input type="submit" value="登录" />
</form>
</div>
</body>
</html>

注册测试页面login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册测试</title>
</head>
<body>
<form action="/zhou/user/register" method="post">
用户名:<input type="text" name="userName" /></br>
密码:<input type="password" name="password" /></br>
<input type="submit" value="注册">
</form>
</body>
</html>

六、Run项目Application
输入http://localhost:8080/zhou/user/registerPage
注册成功
结尾:
由于这是本人的第一片博客,有什么不到之处希望大家提出问题指正,当然在整个创建过程中不少读者可能会遇到很多问题,欢迎留言评论,我一一回复大家。

有需要源码的读者可以去我的GitHub下载,附上我GitHub地址
https://github.com/jugheadzhou/shu.git
ps:这也是笔者第一次使用git提交代码到GitHub仓库,如果有什么问题希望读者可以指正。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐