说来也惭愧,虽说装了mysql8,我却还在尝试用N年前链接Mysql5的JDBC做尝试,脑子着实有问题。
一.加载JAR包:
在你的项目中新建一个lib的文件夹,将下载好的jar包复制到lib文件夹中,右键点击jar包->Buid Path->Add Buid Path.
二.5.0.X版本与8.0.X版本的区别:
1. 5.0.X版本连接的驱动地址为:"com.mysql.jdbc.Driver",而8.0.X版本的更改为:"com.mysql.cj.jdbc.Driver"
2. 建立连接时url增加了一些参数: 5.0.X版本的url为String url = "jdbc:mysql://localhost:3306/student"
而8.0.X版本的需要在后面加上一串字母变为:String url = "jdbc:mysql://local:3306/student?&useSSL=false&serverTimezone=UTC"
三.连接数据库读取数据
用Navicat Premium中建一张数据表
java连接数据库代码: package mysql.test;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException;
/** * * @author: Doomed * @date: 2018/7/20 * @place: usth * */ public class MysqlDemo { public static void main(String[] args){ // 加载数据库驱动 com.mysql.jdbc.Driver String driver = "com.mysql.cj.jdbc.Driver"; // 获取mysql连接地址 String url = "jdbc:mysql://localhost/student?&useSSL=false&serverTimezone=UTC"; // 数据名称 String username = "root"; // 数据库密码 String password = "123456"; // 获取一个数据的连接 Connection conn = null; // 获取连接的一个状态 try{ Class.forName(driver); //getConnection()方法,连接MySQL数据库! conn=DriverManager.getConnection(url,username,password); if(!conn.isClosed()) System.out.println("数据库连接成功!"); //创建statement类对象,用来执行SQL语句! Statement Statement=conn.createStatement(); //要执行的SQL语句 String sql="select * from info" ; //ResultSet类,用来存放获取的结果集! ResultSet rs=Statement.executeQuery(sql); System.out.println("-------------------------------"); System.out.println("执行结果如下所示:"); System.out.println("-------------------------------"); System.out.println("学号" + "\t" + "姓名"+"\t"); System.out.println("-------------------------------"); String id=null; String name=null; while(rs.next()){ //获取‘学号’这列数据 id=rs.getString("number"); //获取‘姓名’这列数据 name=rs.getString("name"); //输出结果 System.out.println(id+"\t"+name+"\t"); } rs.close(); conn.close(); } catch(ClassNotFoundException e){ //数据库驱动类异常处理 System.out.println("数据库驱动加载失败!"); e.printStackTrace(); } catch(SQLException e1){ //数据库连接失败异常处理 e1.printStackTrace(); } catch(Exception e2){ e2.printStackTrace(); } finally{ System.out.println("-------------------------------"); System.out.println("数据库数据获取成功!"); } } }
执行结果:
(总结一句话:新版的就是事多)
原文链接:https://blog.csdn.net/sinat_41721615/article/details/84346249
|