zoukankan      html  css  js  c++  java
  • 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  }
  • 相关阅读:
    Node.js 调用 restful webservice
    Node.js的集群功能以及在Express的配置
    Node.js 连接mySQL程序
    客户端连接Redis
    缓存的压力测试脚本
    搭建redis集群环境
    编译EXE文件的时候pcap编译不进去。 pyinstaller pcap pypcap 报错
    selenium(五)伪造浏览器
    selenium(四)操作cookie,伪造cookie
    selenium(三)浏览器操作
  • 原文地址:https://www.cnblogs.com/ningqian/p/14305451.html
Copyright © 2011-2022 走看看