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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据是否可用校验

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

創建用戶中心

用戶搜索到自己心儀的商品,接下來就要去購買,但是購買必須先登錄。所以接下來我們編寫用戶中心,實現用戶的登錄和注冊功能。

用戶中心的提供的服務:

  • 用戶的注冊

  • 用戶登錄

  • 用戶個人信息管理

  • 用戶地址管理

  • 用戶收藏管理

  • 我的訂單

  • 優惠券管理

這里我們暫時先實現基本的:注冊和登錄功能,其它功能大家可以自行補充完整。

因為用戶中心的服務其它微服務也會調用,因此這里我們做聚合。

learn-user:父工程,包含2個子工程:

  • learn-user-interface:實體及接口

  • learn-user-service:業務和服務

創建父module

創建learn-user-interface

?

在learn-user下,創建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>

創建learn-user-service

創建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啟動器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!-- 通用Mapper啟動器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId></dependency><!-- mysql驅動 --><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>

啟動類

@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>

添加網關路由

我們修改learn-gateway,添加路由規則,對learn-user-service進行路由:

后臺功能準備

接口文檔

整個用戶中心的開發,我們將模擬公司內面向接口的開發。

我們將根據文檔直接編寫后臺功能,不關心頁面實現。

?

數據結構

CREATE TABLE `tb_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`username` varchar(50) NOT NULL COMMENT '用戶名',`password` varchar(32) NOT NULL COMMENT '密碼,加密存儲',`phone` varchar(20) DEFAULT NULL COMMENT '注冊手機號',`created` datetime NOT NULL COMMENT '創建時間',`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='用戶表';

數據結構比較簡單,因為根據用戶名查詢的頻率較高,所以我們給用戶名創建了索引

?

基本代碼

實體類

@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;// 創建時間@JsonIgnoreprivate String salt;// 密碼的鹽值 }

注意:為了安全考慮。這里對password和salt添加了注解@JsonIgnore,這樣在json序列化時,就不會把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;}

數據驗證功能

接口說明

實現用戶數據的校驗,主要包括對:手機號、用戶名的唯一性校驗。

接口路徑:

GET /check/{data}/{type}

參數說明:

參數說明是否必須數據類型默認值
data要校驗的數據String
type要校驗的數據類型:1,用戶名;2,手機;Integer1

返回結果:

返回布爾類型結果:

  • true:可用

  • false:不可用

狀態碼:

  • 200:校驗成功

  • 400:參數有誤

  • 500:服務器內部異常

controller

因為有了接口,我們可以不關心頁面,所有需要的東西都一清二楚:

  • 請求方式:GET

  • 請求路徑:/check/{param}/{type}

  • 請求參數:param,type

  • 返回結果:true或false

/*** 校驗數據是否可用* @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; }

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。