1. 任何时候,都需要对密码进行加密
Java中利用MessageDigest获取字符串或文件MD5,MessageDigest是Java自带的类
package com.whx.util;
import sun.misc.BASE64Encoder;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
//方法一 MD5文件
private static final String KEY="MD5";
private MD5(){}
public static String encode(String password){
MessageDigest messageDigest=null;
try {
messageDigest=MessageDigest.getInstance(KEY);
messageDigest.update(password.getBytes(StandardCharsets.UTF_8));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return new String(messageDigest.digest());
}
//方法二 字符串的MD5
public static String encoderByMd5(String str){
//确定计算方法
MessageDigest md5=null;
try {
md5=MessageDigest.getInstance("MD5");
BASE64Encoder base64Encoder=new BASE64Encoder();
//加密后的字符串
return base64Encoder.encode(md5.digest(str.getBytes(StandardCharsets.UTF_8)));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
//如果try报异常,则默认密码为aaaaa
return "C056DL/oStNftfbn06seQ==";
}
}
2.executeQuery()方法
执行查询;要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。即语句:ResultSet rs=s.executeQuery(sql);
//getConn()得到连接,prepareStatement(sql)去编译sql语句
//要让idea中的数据与数据库的数据一一对应,对返回的结果集进行解析,因为属于不同的表,所以解析应该放到不同的类,所以暂时放到不同的dao层去进行解析
preparedStatement=getConn().prepareStatement(sql);
//执行sql语句
return preparedStatement.executeQuery();//调用preparedStatement接口中的executeQuery()方法,返回的是一个结果集