下载驱动包
Java 连接 MySQL 需要驱动包:
点击进入最新下载地址
地址:http://dev.mysql.com/downloads/connector/j/
解压后得到jar库文件。
也可使用此地址直接下载
mysql-connector-java-5.1.39-bin.jar
MySQL 8.0以上版本连接有所不同
-
MySQL 8.0以上版本驱动:mysql-connector-java-8.0.16.jar
-
com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver
-
MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。
最后还需要设置 CST。
加载驱动方式:
`Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&serverTimezone=UTC","root","password");
eclipse配置
先创建一个项目,右键点击项目,选择 构建路径(Build Path) ,配置构建路径(Configure Build Path.) 选中库(Libraries),添加外部jar ,选择下载的jar即可。
连接测试
引入包 import java.sql.*
import java.sql.*;
public class Mysqlcode{
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/lbbrary?useSSL=false&serverTimezone=UTC";
private String name="用户名";
private String pwd="密码";
//根据传入的用户名在数据库中查找对应的密码进行比较是否一致
public void gotomysql( String uname,String upwd) {
Connection coon =null;
Statement stmt =null;
try {
Class.forName(JDBC_DRIVER);
System.out.println("链接数据库");
coon = DriverManager.getConnection(DB_URL,name,pwd);
System.out.println(" 实例化Statement对象...");
stmt = coon.createStatement();
String sql;
//根据用户名查找是否有符号的密码
sql = "SELECT UNAME,PASSWORD FROM users where UNAME='x'";
sql=sql.replaceFirst("x", uname);
System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
String username =rs.getNString("UNAME");
String PASSWD =rs.getNString("PASSWORD");
LoginStatue lo=new LoginStatue();
upwd=getMD5String(upwd);
System.out.println(upwd);
//密码正确
if(uname.equals(username)&&upwd.equals(PASSWD)) {
System.out.println(username);
System.out.println(PASSWD);
}
else
{
//点击退出结束程序
System.out.print("密码错误");
}
}
rs.close();
stmt.close();
coon.close();
}
catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(coon!=null) coon.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
在向数据库中存密码时使用MD5 加密
public static String getMD5String(String str) {
try {
// 生成一个MD5加密计算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算md5函数
md.update(str.getBytes());
return new BigInteger(1, md.digest()).toString(16);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}