• MySQL实现注册时随机生成数字id,类似于注册qq时随机生成qq号


      首先根据长度需求通过java的随机函数java.util.Random生成随机数,如希望得到5位随机id,则可以使用如下语句

          int r = (new Random()).nextInt()%89999;
          int id = 10000 + Math.abs(r);

      第二步,检查数据库内是否已经存在该id。可以通过查询该id是否有结果来判断。如果不存在则直接插入,否则重新生成随机数。

      以下为完整代码:

      

      public void reg(String username, String password){
        Connection conn = null;
        PreparedStatement ptmt = null;
        ResultSet rs = null;

        try{
          conn = DBHelper.getConnection();

          while(true){
            int r = (new Random()).nextInt()%89999;
            int id = 10000 + Math.abs(r);
            String sql = "select * from employee where id=?;";
            ptmt = conn.prepareStatement(sql);
            ptmt.setInt(1, id);
            rs = ptmt.executeQuery();
            if(!rs.next()){
              sql = "insert into employee(id, employeename, psw) value"
                + "(?,?,?)";
              ptmt = conn.prepareStatement(sql);
              ptmt.setInt(1, id);
              ptmt.setString(2, username);
              ptmt.setString(3, password);
              ptmt.execute();
              break;
            }
          }
        }catch(Exception ex){
          ex.printStackTrace();
        }finally{
          if(ptmt != null){
            try{
              ptmt.close();
            }catch(Exception ex){
              ex.printStackTrace();
            }
          }
          if(rs != null){
            try{
              rs.close();
            }catch(Exception ex){
              ex.printStackTrace();
            }
          }

        }
      }

  • 相关阅读:
    怎么洗掉衣服上的水粉颜料、丙烯颜料、水彩颜料、油画颜料
    HDU 2844 Coins(多重背包)
    oracle知识点
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯空心菱形
    java实现第六届蓝桥杯空心菱形
    java实现第六届蓝桥杯空心菱形
  • 原文地址:https://www.cnblogs.com/shiyingzhi/p/7389839.html
Copyright © 2020-2023  润新知