日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据是否可用校验

發(fā)布時(shí)間:2024/4/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据是否可用校验 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

創(chuàng)建用戶中心

用戶搜索到自己心儀的商品,接下來就要去購(gòu)買,但是購(gòu)買必須先登錄。所以接下來我們編寫用戶中心,實(shí)現(xiàn)用戶的登錄和注冊(cè)功能。

用戶中心的提供的服務(wù):

  • 用戶的注冊(cè)

  • 用戶登錄

  • 用戶個(gè)人信息管理

  • 用戶地址管理

  • 用戶收藏管理

  • 我的訂單

  • 優(yōu)惠券管理

這里我們暫時(shí)先實(shí)現(xiàn)基本的:注冊(cè)和登錄功能,其它功能大家可以自行補(bǔ)充完整。

因?yàn)橛脩糁行牡姆?wù)其它微服務(wù)也會(huì)調(diào)用,因此這里我們做聚合。

learn-user:父工程,包含2個(gè)子工程:

  • learn-user-interface:實(shí)體及接口

  • learn-user-service:業(yè)務(wù)和服務(wù)

創(chuàng)建父module

創(chuàng)建learn-user-interface

?

在learn-user下,創(chuàng)建module:

pom:

<?xml version="1.0" encoding="UTF-8"?> <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"><parent><artifactId>learn-user</artifactId><groupId>com.learn.user</groupId><version>1.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.learn.user</groupId><artifactId>learn-user-interface</artifactId><version>1.0.0-SNAPSHOT</version></project>

創(chuàng)建learn-user-service

創(chuàng)建module

pom

<?xml version="1.0" encoding="UTF-8"?> <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"><parent><artifactId>learn-user</artifactId><groupId>com.learn.user</groupId><version>1.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.learn.user</groupId><artifactId>learn-user-service</artifactId><version>1.0.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- mybatis啟動(dòng)器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!-- 通用Mapper啟動(dòng)器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId></dependency><!-- mysql驅(qū)動(dòng) --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.learn.user</groupId><artifactId>learn-user-interface</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies></project>

啟動(dòng)類

@SpringBootApplication @EnableDiscoveryClient @MapperScan("com.learn.user.mapper") public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);} }

配置:

server:port: 8085 spring:application:name: user-servicedatasource:url: jdbc:mysql://127.0.0.1:3306/learnusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driver eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eurekainstance:lease-renewal-interval-in-seconds: 5lease-expiration-duration-in-seconds: 15mybatis:type-aliases-package: com.learn.user.pojo

父工程learn-user的pom:

<?xml version="1.0" encoding="UTF-8"?> <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"><parent><artifactId>learn</artifactId><groupId>com.learn.parent</groupId><version>1.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.learn.user</groupId><artifactId>learn-user</artifactId><packaging>pom</packaging><version>1.0.0-SNAPSHOT</version><modules><module>learn-user-interface</module><module>learn-user-service</module></modules></project>

添加網(wǎng)關(guān)路由

我們修改learn-gateway,添加路由規(guī)則,對(duì)learn-user-service進(jìn)行路由:

后臺(tái)功能準(zhǔn)備

接口文檔

整個(gè)用戶中心的開發(fā),我們將模擬公司內(nèi)面向接口的開發(fā)。

我們將根據(jù)文檔直接編寫后臺(tái)功能,不關(guān)心頁面實(shí)現(xiàn)。

?

數(shù)據(jù)結(jié)構(gòu)

CREATE TABLE `tb_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`username` varchar(50) NOT NULL COMMENT '用戶名',`password` varchar(32) NOT NULL COMMENT '密碼,加密存儲(chǔ)',`phone` varchar(20) DEFAULT NULL COMMENT '注冊(cè)手機(jī)號(hào)',`created` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',`salt` varchar(32) NOT NULL COMMENT '密碼加密的salt值',PRIMARY KEY (`id`),UNIQUE KEY `username` (`username`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='用戶表';

數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)單,因?yàn)楦鶕?jù)用戶名查詢的頻率較高,所以我們給用戶名創(chuàng)建了索引

?

基本代碼

實(shí)體類

@Table(name = "tb_user") public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String username;// 用戶名@JsonIgnoreprivate String password;// 密碼private String phone;// 電話private Date created;// 創(chuàng)建時(shí)間@JsonIgnoreprivate String salt;// 密碼的鹽值 }

注意:為了安全考慮。這里對(duì)password和salt添加了注解@JsonIgnore,這樣在json序列化時(shí),就不會(huì)把password和salt返回。

?

mapper

public interface UserMapper extends Mapper<User> { }

Service

@Service public class UserService {@Autowiredprivate UserMapper userMapper; }

controller

@Controller public class UserController {@Autowiredprivate UserService userService;}

數(shù)據(jù)驗(yàn)證功能

接口說明

實(shí)現(xiàn)用戶數(shù)據(jù)的校驗(yàn),主要包括對(duì):手機(jī)號(hào)、用戶名的唯一性校驗(yàn)。

接口路徑:

GET /check/{data}/{type}

參數(shù)說明:

參數(shù)說明是否必須數(shù)據(jù)類型默認(rèn)值
data要校驗(yàn)的數(shù)據(jù)String
type要校驗(yàn)的數(shù)據(jù)類型:1,用戶名;2,手機(jī);Integer1

返回結(jié)果:

返回布爾類型結(jié)果:

  • true:可用

  • false:不可用

狀態(tài)碼:

  • 200:校驗(yàn)成功

  • 400:參數(shù)有誤

  • 500:服務(wù)器內(nèi)部異常

controller

因?yàn)橛辛私涌?#xff0c;我們可以不關(guān)心頁面,所有需要的東西都一清二楚:

  • 請(qǐng)求方式:GET

  • 請(qǐng)求路徑:/check/{param}/{type}

  • 請(qǐng)求參數(shù):param,type

  • 返回結(jié)果:true或false

/*** 校驗(yàn)數(shù)據(jù)是否可用* @param data* @param type* @return*/ @GetMapping("check/{data}/{type}") public ResponseEntity<Boolean> checkUserData(@PathVariable("data") String data, @PathVariable(value = "type") Integer type) {Boolean boo = this.userService.checkData(data, type);if (boo == null) {return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();}return ResponseEntity.ok(boo); }

Service

public Boolean checkData(String data, Integer type) {User record = new User();switch (type) {case 1:record.setUsername(data);break;case 2:record.setPhone(data);break;default:return null;}return this.userMapper.selectCount(record) == 0; }

?

總結(jié)

以上是生活随笔為你收集整理的数据是否可用校验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。