void jToggleButton1_actionPerformed(ActionEvent e) {
int i;
oneresultmd5="1978";
for(i=0;i<1;i++)
{
try{
java.security.MessageDigest alga=java.security.MessageDigest.getInstance("MD5");
alga.update(oneresultmd5.getBytes());
byte[] digesta=alga.digest();
oneresultmd5=byte2hex(digesta); }
catch (java.security.NoSuchAlgorithmException ex)
{
System.out.println("非法摘要算法");
}
}
jLabel2.setText(oneresultmd5); }在另一个类中调用
try
{
//连接mysql,并查询
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String usermysql="chouki";
String passwordmysql="1211925";
Connection con = DriverManager.getConnection("jdbc:odbc:chouki",usermysql,passwordmysql );
Statement stmt = con.createStatement();
String sql1= "update manager set Userpassword= '" + passwordapplet.oneresultmd5 + "', Iteration='"+ iteration + "' where List='" + list +"';";
ResultSet rs1 = stmt.executeQuery(sql1);
stmt.close();
con.close();
}
catch(Exception e)
{System.out.println(e.getMessage());}
数据库显示userpassword为null.
int i;
oneresultmd5="1978";
for(i=0;i<1;i++)
{
try{
java.security.MessageDigest alga=java.security.MessageDigest.getInstance("MD5");
alga.update(oneresultmd5.getBytes());
byte[] digesta=alga.digest();
oneresultmd5=byte2hex(digesta); }
catch (java.security.NoSuchAlgorithmException ex)
{
System.out.println("非法摘要算法");
}
}
jLabel2.setText(oneresultmd5); }在另一个类中调用
try
{
//连接mysql,并查询
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String usermysql="chouki";
String passwordmysql="1211925";
Connection con = DriverManager.getConnection("jdbc:odbc:chouki",usermysql,passwordmysql );
Statement stmt = con.createStatement();
String sql1= "update manager set Userpassword= '" + passwordapplet.oneresultmd5 + "', Iteration='"+ iteration + "' where List='" + list +"';";
ResultSet rs1 = stmt.executeQuery(sql1);
stmt.close();
con.close();
}
catch(Exception e)
{System.out.println(e.getMessage());}
数据库显示userpassword为null.
byte[] digesta=alga.digest();
oneresultmd5=byte2hex(digesta);
^
byte2hex的定义?把方法定义也发上来看看,应该是这部分的问题
{
String hs="";
String stmp="";
for (int n=0;n<b.length;n++)
{
stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
if (n<b.length-1) hs=hs+":";
}
return hs.toUpperCase();
}
这部分应该没问题,因为我已jLabel2.setText(oneresultmd5);在applet中可以得到结果.
list是多少,检查一下你的Update语句直接在mysql里执行的结果,是否更新时没用满足where List='" + list +"';"的记录。
还有,你更新数据库前确认执行void jToggleButton1_actionPerformed(ActionEvent e) 对oneresultmd5初始化了吗
好像public static string oneresultmd5;得不到applet中的 oneresultmd5的值,如果相互不认(applet和jToggleButton1_actionPerformed)
,那么在jToggleButton1_actionPerformed中就会有定义错误.
我真的不明白为什么?????????????????????????
oneresultmd5="1978";
2.如果是没有满足where list......,那么数据库就不会有任何改变,但事实是数据库发生了改变,在设置public static string oneresultmd5="11111";时.
可以确定如果设成public static string oneresultmd5="11111";可以在数据库中得到111111的值.
public static byte[] MD5(String rStr)
{
try
{
MessageDigest md5 = MessageDigest.getInstance(Coding.MD5);
md5.update(rStr.getBytes());
return md5.digest();
}catch(Exception e)
{
return new byte[0];
}
}---------------
[email protected]