java生成随机账号(SpringBoot结合Mybatis,入门勿喷,如有侵权请联系删除。)
直接上代码
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,入门勿喷,如有侵权请联系删除。)相关推荐
- Java生成随机数字和字母组合10位数
/** * java生成随机数字和字母组合10位数 * @param length[生成随机数的长度] * @ret ...
- Java生成随机邀请码
Java生成随机10位不重复邀请码 public static void main(String[] args) {for (int i = 0; i < 10; i++) {System.ou ...
- Java 生成随机昵称(形容词加名词)
Java 生成随机昵称 今天写了个使用java生成随机可爱昵称的代码,就是使用形容词拼接名词. package com.haier.util;import java.util.Random;publi ...
- java生成随机时间_Java生成某段时间内的随机时间
上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 生成随机时间 ...
- java生成随机数组_JAVA生成随机数组10个数字并求和
JAVA生成随机数组10个数字并求和 本文最终结果大概是这样的',使用java技术随机生成10个数,然后填充一个数组并在消息框中显示数组内容,接着对数组求和输出,将结果显示在消息框中. 设计思路:可以 ...
- Java 生成随机订单号
Java 生成随机订单号 /** 根据时间生成随机订单号 */ public class GenerateNum { // 全局自增数 private static int count = 0; // ...
- java生成随机10位数字_用Java生成10个随机的四位数字
要生成随机整数,请将Random类与nextInt一起使用.首先,创建一个Random对象-Random rand = new Random(); 上面的Random是一个随机数生成器.现在,一一挑选 ...
- Java 生成随机中文、英文姓名(下)
基本介绍 一个生成随机中英文姓名的 java 小项目,已打包jar(未混淆). 这个 jar 使用 json 的方式存取姓名资源,json 文件放在jar包之中. 项目依赖于Json-Java解析js ...
- Java生成随机图片验证码工具类
一.第一种生成随机图片验证码 public class VerifyCodeUtil {//生成随机数据的数据源 public static final String VERIFY_CODES = & ...
最新文章
- 解决 Dynamics AX 2009 部署报表时错误
- 重磅消息:蚂蚁金服推出RPC框架
- 2018年JavaWeb和移动程序员学习的12个框架
- WaitForMultipleObject与MsgWaitForMultipleObjects用法
- u盘正常接入后计算机无法看到,u盘在我的电脑显示不出来怎么办-处理u盘在我的电脑无法显示的方案 - 河东软件园...
- PHP-面向对象编程教程
- vue render函数_Vue原理解析(一):Vue到底是什么?
- async/await处理异步
- Spring AOP AspectJ 代码实例
- AT0 Intrudoction
- 优秀代码所具备的5大品质 你的代码呢?
- Android开发技术周报 Issue#38
- 火星坐标转换 php,百度经纬度和火星坐标转换
- lync 2013标准版安装
- 343.微生物组研究写作的一般思路
- Springboot集成Mybatis怎么在控制台打印sql语句
- DST与Neural Belief Tracker
- rpm包文件取出方法rpm2cpio|cpio -idv
- 怎么把线稿提取出来_PS怎么扣抠线稿?Adobe Photoshop CS6如何提取清晰的线稿
- windows 删除设备和驱动器中你不要的图标