Java &引用;在“;mysql数据库的随机数
我正在创建类似包裹机的程序。我已连接到mysql数据库。 如您所见,我有字段“final int orderPassword”。我想自动生成它的方法,我把在这个主题的结尾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{
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