public class LoginDao {
public static boolean doLogin(String username, String passwd) {
System.out.println("UserName : "+username+", Passwd:"+passwd);
boolean status = false;
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/test_yxf?useUnicode=true&characterEncoding=UTF-8", "root", "123456");
// con = DriverManager.getConnection("jdbc:mysql://localhost/test_yxf?useSSL=false&characterEncoding=utf8", "root", "123456");
// 用户名及密码是否正确?
PreparedStatement ps = con.prepareStatement("SELECT * FROM servlet_user WHERE name=? AND passwd=?");
ps.setString(1, username);
ps.setString(2, passwd);
ResultSet rs = ps.executeQuery();
status = rs.next();
} catch (Exception e) {
System.out.println(e);
}
return status;
}
}
以上代码片段中的
useSSL=false表示当jdbc jar包版本比mysql的版本低时使用
useUnicode=true&characterEncoding=UTF-8是表示会用utf-8进行解码,然后编码为gbk存到数据库。取数据时会用gbk解码成字节码,然后编码成utf-8传给调用端。
注意:在xml配置文件中配置数据库utl时,要使用&的转义字符也就是&