Java &引用;在“;mysql数据库的随机数

Java &引用;在“;mysql数据库的随机数,java,mysql,Java,Mysql,我正在创建类似包裹机的程序。我已连接到mysql数据库。 如您所见,我有字段“final int orderPassword”。我想自动生成它的方法,我把在这个主题的结尾 public static void post() throws Exception{ final int parcelID = 2; final int clientMPNumber = 777777777; final int orderPassword = 1234; try{

我正在创建类似包裹机的程序。我已连接到mysql数据库。 如您所见,我有字段“final int orderPassword”。我想自动生成它的方法,我把在这个主题的结尾

    public static void post() throws Exception{
    final int parcelID = 2;
    final int clientMPNumber = 777777777;
    final int orderPassword = 1234;

    try{
        Connection con = getConnection();
        PreparedStatement posted = con.prepareStatement("INSERT INTO Parcels.Orders (parcelID, clientMPNumber, orderPassword) VALUES ('"+parcelID+"', '"+clientMPNumber+"', '"+orderPassword+"')");

        posted.executeUpdate();
    }catch(Exception e){System.out.println(e);}
finally{
    System.out.println("Insert completed");
}
}
下面是我想放置的方法,而不是“final int orderPassword”


我该怎么做呢?

鉴于您的方法在同一个类或包中,只需更改

final int orderPassword = 1234;


备注:为了获得更好的随机密码,您可以使用一些库,如

我建议使用更安全的密码,尤其是
字符串
密码

  • 创建一个
    char
    数组以包含数字和字母(特殊字符可选)
  • 从6个随机索引中随机获取(例如)6个字符。(注意,根据数据库中的字段大小,它可以是任意长度,不一定是6)


输出样本:

36Ynv3
13Kvp5
4A4117
0zlSS3
vr5625

orderPassword
是否应该是唯一的?您还应该利用
PreparedStatement
的优点,通过set方法设置值。PreparedStatement永远不应该在QueryTanks中使用值创建。就是这样,我现在非常高兴:Dglad帮助了我;)
final int orderPassword = generatePass();
public static String generatePassword(int length){

    char source[] = "A0b1C2d3E4f5G6h7I8j9K0l1M2n3O4p5Q6r7S8t9U0v1W2x3Y4z5".toCharArray();

    Random generator = new Random();
    String password ="";

    for(int i=0; i<length; i++){
        password += source[generator.nextInt(source.length)];
    }

    return password;
}
String orderPassword = generatePassword(6); // of length 6 for example
36Ynv3
13Kvp5
4A4117
0zlSS3
vr5625