您的位置:首页 > 其它

简单的登陆注册接口

2018-03-06 11:02 323 查看
pom.xml

注入要用到的依赖

web

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

jdbc

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

mysql-connector-java

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope><!--runntime表示被依赖项目无需参与项目的编译-->
</dependency>


<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>


<?xml version="1.0" encoding="UTF-8"?>
<!--xml版本、编码-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!--
xmlns -命名空间,类似包名,因为xml的标签可自定义,需要命名空间来区分
xmlns:xsi -xml遵循的标签规范
xsi -用来定义xmlschema的地址,也就是xml书写时需要遵循的语法,两部分组成,前面部分就是命名空间的名字,后面是xsd(xmlschema)的地址
-->
<modelVersion>4.0.0</modelVersion><!--描述这个POM文件是遵从哪个版本的项目描述符-->
<groupId>com.example</groupId><!--项目组织唯一的标识符,和路径差不多-->
<artifactId>springboot_mybatis</artifactId><!--项目的唯一的标识符,和项目的名字差不多-->
<version>0.0.1-SNAPSHOT</version><!--项目的版本-->
<packaging>jar</packaging> <!-- packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par -->
<name>springboot_mybatis</name><!-- 项目的名称, Maven 产生的文档用 -->
<description>Demo project for Spring Boot</description><!-- 项目的描述, Maven 产生的文档用 -->

<parent><!--继承父类-->
<groupId>org.springframework.boot</groupId><!--项目组织唯一的标识符,和路径差不多-->
<artifactId>spring-boot-starter-parent</artifactId><!--项目的唯一的标识符,和项目的名字差不多-->
<version>2.0.0.RELEASE</version><!--项目的版本-->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--出入编码-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version><!--java版本-->
</properties>
<dependencies><!--依赖-->
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope><!--runntime表示被依赖项目无需参与项目的编译--> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope><!--test表示依赖项目仅仅参与测试相关的工作-->
</dependency>
</dependencies>
<build><!--编译设置-->
<plugins><!--插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>


User实体类

package com.example.springboot_mybatis.user;

import org.springframework.stereotype.Repository;

@Repository
public class User {

private int id_ = 0;
private String username = "";
private String password = "";

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;
}

}


UserMapper.java mybatis sql映射

package com.example.springboot_mybatis.mapper.user;

import com.example.springboot_mybatis.user.User;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.type.JdbcType;

//使用注释配置映射的sql语句,这样可以省掉映射器xml文件
@Mapper
public interface UserMapper {

@Select("select * from user_info where username=#{username}")
public User getByusername(String username);

/*
id    id标识
value 值,内值的配置
property 变量名
column   对应数据库列名
javaType 变量类型
jdbcType 对应数据字段类型
id       是否主键
*/
@Results(id = "1",value = {
@Result(property = "id_",column = "id_",javaType = String.class,jdbcType = JdbcType.VARCHAR,id = true),
@Result(property = "username",column = "username",javaType = String.class,jdbcType = JdbcType.VARCHAR),
@Result(property = "password",column = "password",javaType = String.class,jdbcType = JdbcType.VARCHAR)
})
@Insert("insert into user_info(username,password) values(#{username},#{password})")
/*
useGeneratedKeys=true,MyBatis会使用JDBC的getGeneratedKeys方法来取出由数据库内部生成的主键
keyProperty 变量名
keyColumn   对应数据库列名
*/
@Options(useGeneratedKeys=true,keyColumn="id_",keyProperty="id_")//设置id自增长
public void register(User user);

@Update({"update user_info ",
"set password = #{password}",
"where username = #{username}"
})
public int update(User user);

@Delete("delete from user_info where id_ = #{id_} and username = #{username}}")
public int delete(User user);

}


UserService.java 实现UserMapper

package com.example.springboot_mybatis.mapper.user;

import com.example.springboot_mybatis.user.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

//声明Bean,声明UserService类是Spring管理的一个Bean
@Service
public class UserService {

/*
注入Bean,把UserMapper的实体Bean注入到UserService中
required=false,找不到匹配Bean时也不报错
以后用的时候就不用自己new对象,对象由spring管理
按类型进行
*/
@Autowired(required=false)
private UserMapper userMapper;

public User getByusername(String username){
return userMapper.getByusername(username);
}

public void register(User user){
userMapper.register(user);
}

public int update(User user) {
return userMapper.update(user);
}

public int delete(User user) {
return userMapper.delete(user);
}

}


UserController


@Controller
@ResponseBody
public class UserController {

/*
注入bean,按名称进行
以后用的时候就不用自己new对象,对象由spring管理
*/
@Resource
private UserService userService;

/*
@RequestMapping注释
定义Controller方法对应的映射url
value 访问相对地址
method 访问方式
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
public LoginRespond login(@RequestBody LoginAccept loginAccept){
LoginRespond loginRespond = new LoginRespond();
Login login = new Login();
return login.login(loginAccept,loginRespond,userService);
}

@RequestMapping(value = "/register", method = RequestMethod.POST)
public RegisterRespond register(@RequestBody RegisterAccept registerAccept){
RegisterRespond registerRespond = new RegisterRespond();
Register register = new Register();
return register.register(registerAccept,registerRespond,userService);
}

@RequestMapping(value = "/update", method = RequestMethod.POST)
public UpdateRespond updateRespond(@RequestBody UpdateAccept updateAccept){
UpdateRespond updateRespond = new UpdateRespond();
Update update = new Update();
return update.update(updateAccept,updateRespond,userService);
}

}


LoginAccept


public class LoginAccept implements Accept{

private String id = "";
private User data;

public User getData() {
return data;
}

public void setData(User data) {
this.data = data;
}

//表明该方法需要重写,方便阅读
@Override
public String getId() {
return id;
}

@Override
public void setId(String id) {
this.id = id;
}

}


LoginRespondData


public class LoginRespondData {

private String Islogin;

public String getIslogin() {
return Islogin;
}

public void setIslogin(String islogin) {
Islogin = islogin;
}

}


LoginRespond


public class LoginRespond implements Respond{

private String id = "";
private State state;
private LoginRespondData data;

@Override
public String getId() {
return id;
}

@Override
public void setId(String id) {
this.id = id;
}

public State getState() {
return state;
}

public void setState(State state) {
this.state = state;
}

public LoginRespondData getData() {
return data;
}

public void setData(LoginRespondData data) {
this.data = data;
}

}


Login


public class Login {

public LoginRespond login(LoginAccept loginAccept,LoginRespond loginRespond,UserService userService){

loginRespond.setId(loginAccept.getId());
State state = new State();
LoginRespondData loginRespondData = new LoginRespondData();
User user_accept = loginAccept.getData();
int id_ = 0;
String password_ = "";
User user_sql = userService.getByusername(user_accept.getUsername());

try {
id_ = user_sql.getId_();
}catch (NullPointerException e){
state.setMsg("该用户不存在或密码错误");
loginRespondData.setIslogin("N");
}
try {
password_ = user_sql.getPassword();
}catch (NullPointerException e){
state.setMsg("该用户不存在或密码错误");
loginRespondData.setIslogin("N");
}
if(password_.equals(user_accept.getPassword())){
state.setMsg("操作成功");
loginRespondData.setIslogin("Y");
}else {
state.setMsg("该用户不存在或密码错误");
loginRespondData.setIslogin("N");
}
loginRespond.setState(state);
loginRespond.setData(loginRespondData);

return loginRespond;
}

}


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