java post 注册_实战 Java 第3天:开发注册、登陆接口

实战 Java 第3天:开发注册、登陆接口

发布时间:2019-07-05 19:34,

浏览次数:105

, 标签:

Java

实战 Java 第3天:开发注册、登陆接口

* 前言

* 一、创建 entity 实体类

* 二、创建 service 服务类

* 三、创建 mapper 类

* 四、创建 sql 语句

* 五、调用服务,处理业务逻辑

* 六、测试接口是否成功

* 七、总结

<>前言

在前面的《实战 Java 第2天》

学习了如何连接数据库,今天开始编写正式的业务接口,实现注册和登陆功能。

<>一、创建 entity 实体类

注册接口和登陆接口需要用到的属性就是用户名 username、密码 password、手机号 phone。

新建 entity 文件包

* 在此文件包下面新建 User 类,来用抽象用户信息,内容如下: package com.dingding.entity; /** * Created

by xpwu on 2019/6/18. */ public class User { public String username; public int

password; public String phone; public User(){} public User(String username, int

password, String phone) { this.username = username; this.password = password;

this.phone = phone; } public String getName(){ return username; } public void

setName(String username){ this.username = username; } public int getPassword(){

return password; } public void setPassword(int password){ this.password =

password; } public String getPhone(){ return phone; } public void setPhone(

String phone){ this.phone= phone; } }

* 在此文件包下面新建 Response 类,用来返回接口调用信息描述(成功与否)。内容如下: package com.dingding.entity;

/** * Created by xpwu on 2019/6/28. */ public class Response { String msg; int

code; Boolean isSuc = true; public Response(){} public Response(Boolean isSuc,

String msg, int code) { this.msg = msg; this.code = code; this.isSuc = isSuc; }

public Boolean getIsSuc() { return isSuc; } public void setIsSuc(Boolean isSuc)

{ this.isSuc = isSuc; } public String getMsg() { return msg; } public void

setMsg(String msg) { this.msg = msg; } public int getCode() { return code; }

public void setCode(int code) { this.code = code; } }

所以 entity 下面有两个实体类,User 类和 Response 类。

<>二、创建 service 服务类

根据业务场景,需要提供一个注册服务与登陆服务。分别为增加用户信息与根据用户名查询用户信息。

* 新建 service 文件包,在此文件包下新建 UserService 类编写接口,内容如下: package com.dingding.mapper;

import com.dingding.entity.User; import org.springframework.stereotype.

Repository; import java.util.List; /** * Created by xpwu on 2019/6/27. */ public

interface UserService{ int addUser(User user);//增加用户信息接口 List

queryByUsername(String username);//根据用户名查询用户信息 }

* 在 service 文件包下面新建 impl 文件包,在 impl 文件包下新建 UserServiceImpl 类来实现 UserService

接口。 package com.dingding.service.impl; import com.dingding.entity.User; import

com.dingding.mapper.UserMapper; import com.dingding.service.UserService; import

org.springframework.beans.factory.annotation.Autowired; import org.

springframework.stereotype.Service; import java.util.List; /** * Created by

xpwu on 2019/6/28. */ @Service public class UserServiceImpl implements

UserService { @Autowired UserMapper userMapper; public int addUser(String

username,int password,String phone){ User user = new User(username,password,

phone); int count = userMapper.addUser(user); return count; } public List

queryByUsername(String username){ List userList = userMapper.

queryByUsername(username); return userList; } }

<>三、创建 mapper 类

根据 service 服务类创建对应的 mapper 类。

新建 mapper 文件包,在此文件包下新建 UserMapper 类,内容如下:

package com.dingding.mapper; import com.dingding.entity.User; import org.

springframework.stereotype.Repository; import java.util.List; /** * Created by

xpwu on 2019/6/27. */ @Repository public interface UserMapper{ //注意接口名称与数据库的 id

对应 int addUser(User user); List queryByUsername(String username); }

<>四、创建 sql 语句

在 resources 文件夹下,新建 mapper 文件夹,在此文件夹下新建相关的 xml 文件,内容如下。

<?xml version="1.0" encoding="UTF-8"?> /p>

"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

"com.dingding.mapper.UserMapper">

"com.dingding.entity.User">

property="username" />

"password" /> <

/resultMap>

INSERT INTO `user` VALUES(#{username},#{password},#{phone})

="queryByUsername" resultType="com.dingding.entity.User"> SELECT * FROM `user`

WHERE username = #{username}

<>五、调用服务,处理业务逻辑

新建 controller 文件包,在此文件包下新建 UserController 类,在此类中调用调用相关服务并处理逻辑,内容如下:

* 注册接口的逻辑处理

* 判断用户名、密码、手机号是否为空,如果为空,注册失败;

* 如果都不为空,根据用户名查询是否有重复用户名,如果有,注册失败;

* 如果没有重复用户名,注册成功。

* 登陆接口的逻辑处理

* 判断用户名、密码是否为空;

* 如果都不为空,根据用户名查询数据库对应的密码;

* 如果密码有误,登陆失败;

* 如果密码正确,登陆成功。 package com.dingding.controller; import com.dingding.entity.

Response; import com.dingding.entity.User; import com.dingding.service.

UserService; import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestBody; import org.

springframework.web.bind.annotation.RequestMapping; import org.springframework.

web.bind.annotation.RequestMethod; import org.springframework.web.bind.

annotation.RestController; import java.util.List; import java.util.Map; /** *

Created by xpwu on 2019/6/18. */ @RestController public class UserController {

@Autowiredprivate UserService service; @RequestMapping(value = "/register",

method= RequestMethod.POST) public Response register(@RequestBody Map

String> person){ String username = person.get("username"); int password =

Integer.parseInt(person.get("password")); String phone = person.get("phone");

//1.判断用户名、密码、手机号是否为空 if(username != null && password != 0 && phone != null){

List users = service.queryByUsername(username); //2.判断是否有重复用户名 if(users!=

null && users.size()>0){ return new Response(true,"注册失败,用户名重复,请更换",-1); }else {

int count= service.addUser(username,password,phone); if(count>0){

//3.没有重复用户名,注册成功 return new Response(true,"注册成功",1); }else { return new Response

(true,"注册失败",-1); } } }else{ return new Response(true,"注册失败,请检查用户名、密码、手机号是否为空",-

1); } } @RequestMapping(value = "/login",method = RequestMethod.POST) public

Responselogin(@RequestBody Map person){ String username = person

.get("username"); int password =Integer.parseInt(person.get("password")); //1.

判断用户名、密码是否为空 if(username != null && password != 0 ){ List users = service.

queryByUsername(username); //2. 判断用户名是否存在 if(users!=null && users.size()>0){

User user= users.get(0); //3. 判断密码是否正确 if(password == user.getPassword()){ //4.

密码正确,登陆成功 return new Response(true,"登陆成功",1); }else { return new Response(false,

"登陆失败,密码错误",-1); } }else { return new Response(true,"登陆失败,用户名不存在",-1); } }else {

return new Response(true,"登陆失败,请检查用户名、密码是否为空",-1); } } }

<>六、测试接口是否成功

* 使用 postman 验证接口。

* 验证注册接口

1)选择请求方式为 POST, 在地址栏中输入 http://localhost:8080/register

在 Body 中添加相关参数。

2)执行 Send,选择 Params,选择Body,得到如下结果,验证成功。

* 验证登陆接口

1)将地址改为登陆接口地址,输入用户名和密码;

2)选择 send,查看结果。

* 查看数据库是否添加成功。

<>七、总结

以下是需要注意的几点。

* 使用 postman 进行验证的时候,相应的请求方式,接口地址,请求参数一定要看清楚,一 一对应。

* 因为参数对象是 json 格式,所以记得对象末尾的,不能有。

* 在接收参数时,如果对象是 int 类型,需要进行转换,如int password

=Integer.parseInt(person.get("password"));

* 在写 xml 文件的时候,int 类型的 jdbcType 为 INTEGER。即

jdbcType="INTEGER" property="password" />。

* mapper 包的接口名与 xml 中的 id 保持一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值