前言:
【1】使用的IDE:Eclipse
【2】使用的MySQL的版本:8.0.22
【3】MySQL8.0以下版本的区别就是导入的jar包不同,获取驱动路径差了一个“cj";url中不用加时区和useSSL=false。
查询方法:(1)使用SQLyog连接mysql数据库,输入查询命令
select version();
(2)使用命令行登陆账号连接到mysql数据库(如果没有设置路径变量,需要先切换到mysql的bin目录下)
先输入:
mysql -u root -p
回车——再输入密码——回车,如下图所示:
1. 选中当前的工程——new——folder——建议命名为lib:在当前工程下新建一个文件夹,用来存放将要导入的数据库管理的驱动jar包
2. 复制要导入的jar包驱动文件,可直接从下面的链接下载,有三种不同版本的驱动jar包
https://wwa.lanzous.com/b00o89rla
密码:csse
选择其中一个jar包复制到第一步创建的lib文件夹下(也可以将三个都复制粘贴到文件夹下,其中不用版本的操作区别是在步骤
3. 选中其中的一个jar包,右键Build Path——Add to Build Path,会把jar包添加到Referenced Libraries文件夹下(也可以将三个都添加进来)
4. 先附上8.0.12版本的连接代码。我用的是test测试单元方法,用main方法没区别,都可以。
1 package jdbc_1.connection; 2 3 import java.sql.Connection; 4 import java.sql.Driver; 5 import java.sql.SQLException; 6 import java.util.Properties; 7 8 import org.junit.Test; 9 10 public class ConnectionTest { 11 12 @Test 13 public void test() throws SQLException { 14 15 //Driver是一个接口 16 //驱动com.mysql.jdbc中的Driver类是其一个实现类 17 Driver driver = new com.mysql.cj.jdbc.Driver(); 18 //jdbc:mysql:协议 19 //localhost:ip协议 20 //3306:默认mysql的端口号 21 //test:test数据库名 22 String url = "jdbc:mysql://localhost:3306/test?&serverTimezone=UTC&useSSL=false"; 23 //将用户名和密码封装在Properties中 24 Properties info = new Properties(); 25 info.setProperty("user", "root");//root是用户名,根据自己的情况修改 26 info.setProperty("password", "123");//123是密码,根据自己的情况修改 27 //略 28 Connection conn = driver.connect(url, info); 29 30 } 31 32 }
5. 因为我的mysql是8.0版本以上的,所以只测试了这个版本该如何操作,如果安装的mysql是8.0版本之上,但导入的jar包不是8.0版本之上,那么会连接失败!!!
6.其他版本的可以按照一开始前言所述修改
7.数据库连接的其他方式:
1 /*****************连接方式二(利用反射)********************/ 2 @Test 3 public void test2() throws Exception{ 4 5 //通过反射的方式获取Driver实现类的对象 6 Class clazz = Class.forName("com.mysql.cj.jdbc.Driver"); 7 Driver driver = (Driver)clazz.newInstance(); 8 9 String url = "jdbc:mysql://localhost:3306/test?&serverTimezone=UTC&useSSL=false"; 10 //将用户名和密码封装在Properties中 11 Properties info = new Properties(); 12 info.setProperty("user", "root"); 13 info.setProperty("password", "123"); 14 Connection conn = driver.connect(url, info); 15 16 } 17 /**********************方式三(DriverManager)****************/ 18 @Test 19 public void test3() throws Exception{ 20 Class clazz = Class.forName("com.mysql.cj.jdbc.Driver"); 21 Driver driver = (Driver)clazz.newInstance(); 22 //注册驱动 23 DriverManager.registerDriver(driver); 24 String url = "jdbc:mysql://localhost:3306/test?&serverTimezone=UTC&useSSL=false"; 25 //获取连接 26 DriverManager.getConnection(url, "root", "123"); 27 } 28 /***********************方式四(省略注册驱动)************************************/ 29 @Test 30 public void test4() throws Exception{ 31 32 Class.forName("com.mysql.cj.jdbc.Driver"); 33 34 String url = "jdbc:mysql://localhost:3306/test?&serverTimezone = UTC&useSSL=false; 35 Connection conn = DriverManager.getConnection(url, "root", "123"); 36 37 }
8.数据库连接的最终版方式
(1) 当前类所在的src路径下——new——file(命名为jdbc.properties)
(2) 在新建的文件中配置4个信息:
【注】等号“=”左右一定不要留空格,不然会识别错误。
结尾无分号,值无引号
1 user=root 2 password=123 3 url=jdbc:mysql://localhost:3306/test?&serverTimezone = UTC&useSSL=false 4 driverClass=com.mysql.cj.jdbc.Driver
(3)读取配置信息,建立连接
1 /************方式五(final版):将数据库连接需要的4个基本信息声明在配置文件中,通过读取配置文件的方式,获取连接****/ 2 @Test 3 public void test5() throws Exception{ 4 //读取配置文件的基本信息 5 //获取当前类的类的加载器——类的加载器的一个主要方法就是getResourceAsStream()获取类路径下的指定文件的输入流 6 InputStream inStream = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); 7 Properties prop = new Properties(); 8 prop.load(inStream); 9 String user = prop.getProperty("user"); 10 String password = prop.getProperty("password"); 11 String url = prop.getProperty("url"); 12 String driverClass = prop.getProperty("driverClass"); 13 //加载驱动 14 Class.forName(driverClass); 15 //获取驱动 16 Connection conn = DriverManager.getConnection(url, user, password); 17 System.out.println(conn); 18 19 }