简单的登陆注册接口
2018-03-06 11:02
323 查看
pom.xml
注入要用到的依赖
web
jdbc
mysql-connector-java
User实体类
UserMapper.java mybatis sql映射
UserService.java 实现UserMapper
注册 略
注入要用到的依赖
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; } }
注册 略
相关文章推荐
- struts2+hibernate4实现简单的注册登陆
- Eclipse使用(七)—— 使用Eclipse创建JavaWeb项目并使用JDBC连接数据库实现简单的登陆注册功能
- 基于Struts2和Android的简单登陆注册功能的设计与实现(待完善)
- 用AJAX实现页面登陆以及注册用户名验证的简单实例
- 有关servlet的简单的登陆和注册
- asp.net简单的注册或者登陆三层架构的例子
- Android 实现简单的登陆注册功能(SharedPreferences和SQLite)
- C语言实现简单注册登陆功能
- Android SharedPreferences应用 实现本地注册登陆 功能简单易懂(实例)
- 网页注册和登陆简单实现的思路分析
- 基于MVC模式的简单用户登陆注册系统demo
- Struts2和hibernate框架整合实现简单的注册登陆功能
- (二)简单的登陆注册系统--增加验证码部分
- 小KING教你做android项目(二)---实现登陆页面并跳转和简单的注册页面
- js操作数据库实现注册和登陆的简单实例
- JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
- JSP web页面登陆注册 表单数据封装 流程总结(简单却容易在细节失误,所以需要严格的流程规范)
- 简单的登陆注册的实现+验证码和表单验证
- 跨域登陆,注册接口
- 一个简单的登陆注册系统