当前位置: 首页 > news >正文

网站内容有哪些辽宁建设工程招标网

网站内容有哪些,辽宁建设工程招标网,中国石油网站建设在线第三次作业,泰州模板建站1.1 由于返回数据都是以下这种格式#xff0c;那么久再编写一个result实体类 报错了#xff0c;原因是没有构造方法 可以使用lombok的注解自动生成#xff0c;添加无参的构造器和全参的构造器 package com.geji.pojo;import lombok.AllArgsConstructor; import lombok.NoArg…1.1 由于返回数据都是以下这种格式那么久再编写一个result实体类 报错了原因是没有构造方法 可以使用lombok的注解自动生成添加无参的构造器和全参的构造器 package com.geji.pojo;import lombok.AllArgsConstructor; import lombok.NoArgsConstructor;//统一响应结果 NoArgsConstructor AllArgsConstructor Data public class ResultT {private Integer code;//业务状态码 0-成功 1-失败private String message;//提示信息private T data;//响应数据//快速返回操作成功响应结果(带响应数据)public static E ResultE success(E data) {return new Result(0, 操作成功, data);}//快速返回操作成功响应结果public static Result success() {return new Result(0, 操作成功, null);}public static Result error(String message) {return new Result(1, message, null);} }接口开发的流程 Controller接收路由--Service执行和数据库的逻辑操作--Mapper映射到真实的数据库操作 1.1 注册 1.1.1 创建相应的类和接口impl实体类实现impl接口 1.1.2 编写UserControl package com.geji.controller;import com.geji.pojo.Result; import com.geji.pojo.User; import com.geji.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/user) public class UserController {Autowiredprivate UserService userService;PostMapping(/register)public Result register(String username, String password) {//查询用户User u userService.findByUserName(username);if (u null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error(用户名已被占用);}} }1.1.3 编写UserService package com.geji.service;import com.geji.pojo.User;public interface UserService {//根据用户名查找用户User findByUserName(String username);//根据用户名和密码注册void register(String username, String password); }1.1.4 编写UserServiceImpl package com.geji.service.impl;import com.geji.mapper.UserMapper; import com.geji.pojo.User; import com.geji.service.UserService; import com.geji.utils.Md5Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic User findByUserName(String username) {User u userMapper.findByUserName(username);return u;}Overridepublic void register(String username, String password) {//加密String md5String Md5Util.getMD5String(password);//添加userMapper.add(username,md5String);} }1.1.4 MD5加密算法 package com.geji.utils;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class Md5Util {/*** 默认的密码字符串组合用来将字节转换成 16 进制表示的字符,apache校验下载的文件的正确性用的就是默认的这个组合*/protected static char hexDigits[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f};protected static MessageDigest messagedigest null;static {try {messagedigest MessageDigest.getInstance(MD5);} catch (NoSuchAlgorithmException nsaex) {System.err.println(Md5Util.class.getName() 初始化失败MessageDigest不支持MD5Util。);nsaex.printStackTrace();}}/*** 生成字符串的md5校验值** param s* return*/public static String getMD5String(String s) {return getMD5String(s.getBytes());}/*** 判断字符串的md5校验码是否与一个已知的md5码相匹配** param password 要校验的字符串* param md5PwdStr 已知的md5校验码* return*/public static boolean checkPassword(String password, String md5PwdStr) {String s getMD5String(password);return s.equals(md5PwdStr);}public static String getMD5String(byte[] bytes) {messagedigest.update(bytes);return bufferToHex(messagedigest.digest());}private static String bufferToHex(byte bytes[]) {return bufferToHex(bytes, 0, bytes.length);}private static String bufferToHex(byte bytes[], int m, int n) {StringBuffer stringbuffer new StringBuffer(2 * n);int k m n;for (int l m; l k; l) {appendHexPair(bytes[l], stringbuffer);}return stringbuffer.toString();}private static void appendHexPair(byte bt, StringBuffer stringbuffer) {char c0 hexDigits[(bt 0xf0) 4];// 取字节中高 4 位的数字转换, // 为逻辑右移将符号位一起右移,此处未发现两种符号有何不同char c1 hexDigits[bt 0xf];// 取字节中低 4 位的数字转换stringbuffer.append(c0);stringbuffer.append(c1);}}1.1.5 编写UserMapper package com.geji.mapper;import com.geji.pojo.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;Mapper public interface UserMapper {//根据用户名查询用户Select(select * from user where username#{username})User findByUserName(String username);//添加Insert(insert into user(username,password,create_time,update_time) values(#{username},#{password},now(),now()))void add(String username, String password); }1.1.6 postman接口测试 1.1.6.1 下载安装postman Download Postman | Get Started for Free 1.1.6.2 创建workspaces 1.1.6.3 创建collections测试用例 1.1.6.3.1 注册接口postbodyurlencoded 成功 1.1.7 以上Controller类中没有对username和password做参数校验Spring中提供了注解 1.1.7.1 引入spring validation起步依赖 1.1.7.2 在参数前加上Pattern注解 1.1.7.3 在Controller类上添加Validated注解 package com.geji.controller;import com.geji.pojo.Result; import com.geji.pojo.User; import com.geji.service.UserService; import jakarta.validation.constraints.Pattern; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/user) Validated public class UserController {Autowiredprivate UserService userService;PostMapping(/register)public Result register(Pattern(regexp ^\\S{5,16}$) String username, Pattern(regexp ^\\S{5,16}$) String password) {//查询用户User u userService.findByUserName(username);if (u null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error(用户名已被占用);}} }1.1.7.4 编写全局异常处理器添加exception包添加注释RestControllerAdvice package com.geji.exception;import com.geji.pojo.Result; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class)public Result handleException(Exception e){e.printStackTrace();return Result.error(StringUtils.hasLength(e.getMessage())? e.getMessage() : 操作失败);} }
http://www.yayakq.cn/news/1636/

相关文章:

  • 山西建设厅网站3d游戏建模培训
  • 怎么做网站的内链十大免费无代码开发软件
  • 做原创视频网站关于网络的网站怎么做
  • 网站备案名称更换廊坊百度推广电话
  • 温州企业建站程序个人网站取什么域名好
  • 网络建站 响应式网站网络营销推广的新趋势
  • 网站开发背景意义seo搜索引擎优化试题
  • 有没有做网站一次付费wordpress后台登不进去
  • 怎么建立公司网站?创建域名
  • 烟台网站排名seo夸克搜索网页版
  • 国家级示范校建设网站58同城企业网站怎么做的
  • 虚拟币挖矿网站开发智通人才网东莞最新招聘信息
  • 网站导航页面制作成都双语网站开发
  • 网页开发人员招聘唐山做网站优化公司
  • 宣威市网站建设协同办公oa
  • 北京网站建设站建设高端网站建设策划
  • 厦门外贸网站建设报价表阿里巴巴网站怎么做推广
  • 免费做祝福网站在线网站建设哪个正规
  • 网站群建设公司开发软件怎么开发
  • 山西网站制作平台苏州网站设计师招聘信息
  • 批量网站访问检测河南省工程招标信息网
  • 宽屏网站js校园局域网的设计与实现
  • 中山专业网站制作哪里可以免费下载ppt模板
  • 农林网站建设深圳it外包公司有哪些
  • 济南网站建设制作设计徐州建站网站模板
  • 网站建设最简单的教程视频教程提供邯郸做移动网站
  • 西安网站建设哪家好一些WordPress万级数据优化
  • 励志做的很好的网站市场营销策划案的范文
  • 沈阳的网站制作公司哪家好搜索引擎广告投放
  • 网站做app开发wordpress视频教程式