SpringBoot實戰項目(七)--用戶新增功能之后台存儲


前面實現了對用戶名,電話,郵箱的驗證后需要把信息存儲到數據庫中...

這里涉及到兩張表--sys_user(用戶表),sys_user_role(用戶角色關聯表)

從控制器寫起--UserController

 1     /**
 2      * 用戶新增功能實現
 3      * @param sysUser
 4      * @param roleId
 5      * @return
 6      */
 7     @PostMapping("/add")
 8     @ResponseBody
 9     public Results<SysUser> save(SysUser sysUser,Integer roleId) {
10        List<SysUser> results = userService.getUser(sysUser.getUserName(),sysUser.getTelephone(),sysUser.getEmail());
11        if (results != null && results.size()>0){
12            for (SysUser user : results){
13                //判斷用戶名是否已存在
14                 if (user.getUserName().equals(sysUser.getUserName())){
15                         return Results.failure(ResponseCode.USERNAME_REPEAT.getCode(), ResponseCode.USERNAME_REPEAT.getMessage());
16                     }
17                      //判斷手機號是否已存在
18                     if (user.getTelephone().equals(sysUser.getTelephone())) {
19                         return Results.failure(ResponseCode.PHONE_REPEAT.getCode(), ResponseCode.PHONE_REPEAT.getMessage());
20                     }
21                     //判斷郵箱是否已存在
22                     if (user.getEmail().equals(sysUser.getEmail())) {
23                         return Results.failure(ResponseCode.EMAIL_REPEAT.getCode(), ResponseCode.EMAIL_REPEAT.getMessage());
24                     }
25            }
26        }
27        sysUser.setStatus(1);
28        //MD5加密
29        sysUser.setPassWord(Md5Cipher.encrypt(sysUser.getPassWord()));
30             return userService.save(sysUser,roleId);
31     }

sysUser--頁面接收的user信息,roleId--所選擇的角色的id,注意Status(狀態在數據庫中不能為空,1 代表啟用,可以手動設置),密碼使用MD5加密

 1 package com.beilin.util;
 2 
 3 
 4 
 5 import java.security.MessageDigest;
 6 import java.security.NoSuchAlgorithmException;
 7 
 8 public class Md5Cipher {
 9 
10     static String salt = "Jd8785d1246asdf511234eetw2112das3365dferer1da87er523";
11 
12     public Md5Cipher() {
13     }
14 
15     public static String encrypt(String string) {
16         String encryptedString = "";
17         try {
18             byte[] strByte = string.getBytes();
19             MessageDigest algorithm = MessageDigest.getInstance("MD5");
20             algorithm.reset();
21             algorithm.update(strByte);
22             byte[] md5Byte = algorithm.digest();
23 
24             StringBuffer sb = new StringBuffer();
25             String hex = "";
26             for (int i = 0; i < md5Byte.length; i++) {
27                 hex = Integer.toHexString(0Xff & md5Byte[i]);
28                 if (hex.length() == 1) {
29                     sb.append('0');
30                 }
31                 sb.append(hex);
32             }
33             encryptedString = sb.toString();
34         } catch (NoSuchAlgorithmException nsae) {
35             nsae.printStackTrace();
36         }
37         return encryptedString;
38     }
39 
40     public static String encryptWithSalt(String string){
41         return Md5Cipher.encrypt(string + salt);
42     }
43 
44     public static void main(String[] argv) {
45         String str = "123456";
46         System.out.println(Md5Cipher.encryptWithSalt(str));
47 //        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
48 //        System.out.println(bCryptPasswordEncoder.encode(str));
49     }
50 }
Md5Cipher

Service層

UserService

 

 

 

UserServiceImpl

 

 

 

Dao層

UserDao

 

 

 SQL映射文件--UserMapper.xml

 

接着再保存sys_user_role(SysUserRole實體類,UserRoleDao...創建過程省略)

UserRoleDao

 

 

UserRoleMapper.xml

 

 debug測試------

 

 

 

 

 

 

 

 可以使用MD5把數據庫密碼全部加密

 

 把控制台輸出的MD5加密過的密碼復制替換到數據庫中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM