mysql生成18位纯数字id_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();

}

}

}

}


版权声明:本文为weixin_35773916原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。