直接上代码

1、这是随机数生成的Utils工具类

 /**  * @Description: 生成字符串随机数(转为Long型)  * @Auther: ZhongZH  * @Date:2022/3/10 0:21  */ public class RandomAccountUtil {private static final String DEFAULT_DIGITS = "0";private static final String FIRST_DEFAULT_DIGITS = "1";/*** @param target 目标数字* @param length 需要补充到的位数, 补充默认数字[0], 第一位默认补充[1]* @return   补充后的结果*/public static String makeUpNewData(String target, int length){return makeUpNewData(target, length, DEFAULT_DIGITS);}/*** @param target 目标数字* @param length 需要补充到的位数* @param add  需要补充的数字, 补充默认数字[0], 第一位默认补充[1]* @return   补充后的结果*/public static String makeUpNewData(String target, int length, String add){if(target.startsWith("-")) target.replace("-", "");if(target.length() >= length) return target.substring(0, length);StringBuffer sb = new StringBuffer(FIRST_DEFAULT_DIGITS);for (int i = 0; i < length - (1 + target.length()); i++) {sb.append(add);}return sb.append(target).toString();}/*** 生产一个随机的指定位数的字符串数字* @param length* @return*/public static String randomDigitNumber(int length){int start = Integer.parseInt(makeUpNewData("", length));//1000+8999=9999int end = Integer.parseInt(makeUpNewData("", length + 1)) - start;//9000return (int)(Math.random() * end) + start + "";}/*** 生成10位随机数 numberNine 与 numberOne字符拼接后转换成Long型* @param: nine  不能大于9* @param: one   不能大于1* @return: java.lang.Long* @author: ZhongZH* @date: 2022/3/10 0:25*/public static Long randomNumberIsTen(int numberNine, int numberOne) throws Exception {if (numberNine != 9) {Exception exception = new Exception("错误:numberNine必须为9");throw exception;} else if (numberOne != 1) {Exception exception = new Exception("错误:numberOne必须为1");throw exception;}String num1 = RandomAccountUtil.randomDigitNumber(numberNine);String num2 = RandomAccountUtil.randomDigitNumber(numberOne);String num3 = num1 + num2;String num4;Long num5;Long num = Long.parseLong(num3);while (num > 9999999999L || num < 9000000000L) {num1 = RandomAccountUtil.randomDigitNumber(numberNine);num2 = RandomAccountUtil.randomDigitNumber(numberOne);num4 = num1 + num2;num5 = Long.parseLong(num4);num = num5;}return num;}}

2、controller类(生成随机数并查询数据库中是否有该账号)

     /*** 查询是否有该账号* @param: []* @return: java.lang.Long* @author: ZhongZH* @date: 2022/3/26 16:26*/@RequestMapping("userFindRandomNumber")public Long randomNumber() throws Exception {// new出User类(Model类),为了set存入随机数在Mapper中查询User user = new User();// 给死循环,为了生成的账号与库中不重复while(true) {// 调用工具类方法Long accountNumber = RandomAccountUtil.randomNumberIsTen(9,1);// 生成的随机数用set方法存入User的Model类中user.setUserAccountNumber(accountNumber);// 判断,如果数据库中没有找到该相同的账号(false),返回该账号if (userService.findAccountNumber(accountNumber) == false) {return accountNumber;}}}

3、Service接口

     /*** 查询是否有该账号* @param: [accountNumber]* @return: boolean* @author: ZhongZH* @date: 2022/3/26 16:21*/public boolean findAccountNumber(Long accountNumber);

4、serviceImpl服务层实现

     /*** 查询是否有该账号* @param: [accountNumber]* @return: boolean* @author: ZhongZH* @date: 2022/3/26 16:23*/@Overridepublic boolean findAccountNumber(Long accountNumber) {Object rows = userDao.findAccountNumber(accountNumber);// 因为没有查询结果会返回null,判断如下if (rows != null) {return true;}// 我们要的结果是为falsereturn false;}

5、dao层,数据库访问层

     /*** 查询是否有该账号* @param: [accountNumber]* @return: int* @author: ZhongZH* @date: 2022/3/26 16:24*/public Object findAccountNumber(Long accountNumber);

6、Mapper.xml文件中

<!-- 查询是否有该账号(测试功能,dbcType=BIGINT是接收Long类型)--><select id="findAccountNumber" resultMap="userMap">select * from t_user t where t.f_userAccountNumber = #{userAccountNumber, jdbcType=BIGINT}</select>

7、返回Controller中添加用户

     /*** 添加用户* @param: [user]* @return: java.lang.String* @author: ZhongZH* @date: 2022/3/26 15:39*/@RequestMapping("userAdd")public String add(User user) throws Exception {Long number = this.randomNumber();// 这里因为我不知道怎么传入数据到前端js中,所以用了set方式来存储数据user.setUserAccountNumber(number);String info = "用户添加成功!";if (!userService.save(user)) {info = "用户添加失败!";}return info;}

结语

因为这个生成随机数账号添加到数据库困扰了我很久,我也是新手,今天终于得以解决!在此特与大家分享我是如何解决的,说起来都是心酸历程…我也知道我这种方法比较低级,但是在这里我这个菜鸟恳请!如果有哪位大神有更好的更高效率的方法,望前辈不吝赐教!

java生成随机账号(SpringBoot结合Mybatis,入门勿喷,如有侵权请联系删除。)相关推荐

  1. Java生成随机数字和字母组合10位数

    /**               * java生成随机数字和字母组合10位数               * @param length[生成随机数的长度]               * @ret ...

  2. Java生成随机邀请码

    Java生成随机10位不重复邀请码 public static void main(String[] args) {for (int i = 0; i < 10; i++) {System.ou ...

  3. Java 生成随机昵称(形容词加名词)

    Java 生成随机昵称 今天写了个使用java生成随机可爱昵称的代码,就是使用形容词拼接名词. package com.haier.util;import java.util.Random;publi ...

  4. java生成随机时间_Java生成某段时间内的随机时间

    上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 生成随机时间 ...

  5. java生成随机数组_JAVA生成随机数组10个数字并求和

    JAVA生成随机数组10个数字并求和 本文最终结果大概是这样的',使用java技术随机生成10个数,然后填充一个数组并在消息框中显示数组内容,接着对数组求和输出,将结果显示在消息框中. 设计思路:可以 ...

  6. Java 生成随机订单号

    Java 生成随机订单号 /** 根据时间生成随机订单号 */ public class GenerateNum { // 全局自增数 private static int count = 0; // ...

  7. java生成随机10位数字_用Java生成10个随机的四位数字

    要生成随机整数,请将Random类与nextInt一起使用.首先,创建一个Random对象-Random rand = new Random(); 上面的Random是一个随机数生成器.现在,一一挑选 ...

  8. Java 生成随机中文、英文姓名(下)

    基本介绍 一个生成随机中英文姓名的 java 小项目,已打包jar(未混淆). 这个 jar 使用 json 的方式存取姓名资源,json 文件放在jar包之中. 项目依赖于Json-Java解析js ...

  9. Java生成随机图片验证码工具类

    一.第一种生成随机图片验证码 public class VerifyCodeUtil {//生成随机数据的数据源 public static final String VERIFY_CODES = & ...

最新文章

  1. 解决 Dynamics AX 2009 部署报表时错误
  2. 重磅消息:蚂蚁金服推出RPC框架
  3. 2018年JavaWeb和移动程序员学习的12个框架
  4. WaitForMultipleObject与MsgWaitForMultipleObjects用法
  5. u盘正常接入后计算机无法看到,u盘在我的电脑显示不出来怎么办-处理u盘在我的电脑无法显示的方案 - 河东软件园...
  6. PHP-面向对象编程教程
  7. vue render函数_Vue原理解析(一):Vue到底是什么?
  8. async/await处理异步
  9. Spring AOP AspectJ 代码实例
  10. AT0 Intrudoction
  11. 优秀代码所具备的5大品质 你的代码呢?
  12. Android开发技术周报 Issue#38
  13. 火星坐标转换 php,百度经纬度和火星坐标转换
  14. lync 2013标准版安装
  15. 343.微生物组研究写作的一般思路
  16. Springboot集成Mybatis怎么在控制台打印sql语句
  17. DST与Neural Belief Tracker
  18. rpm包文件取出方法rpm2cpio|cpio -idv
  19. 怎么把线稿提取出来_PS怎么扣抠线稿?Adobe Photoshop CS6如何提取清晰的线稿
  20. windows 删除设备和驱动器中你不要的图标

热门文章

  1. 代码重构技巧之重复代码
  2. Launcher app数据加载流程
  3. 线性表(顺序存储结构)C语言
  4. 让人眼前一亮的三维可视化平台
  5. 苹果iPhone 4发货时间推迟到7月14日
  6. Python报错:PermissionError: [Errno 13] Permission denied
  7. 设计模式——工厂模式(Factory Pattern)
  8. 多元函数第一:实数系统(2) 确界原理
  9. codeforces 144D Missile Silos(最短路)
  10. 计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)