JDBC编程获取数据库连接(mysql 8.0版本以上)

前言:

【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  }
原文地址:https://www.cnblogs.com/ningqian/p/14305451.html