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();
        }
      }

    }
  }

posted @ 2017-08-18 15:19  黑白条纹  阅读(830)  评论(0编辑  收藏  举报