JDBC:获取数据库连接(一)

发布于:2023-01-20 ⋅ 阅读:(18) ⋅ 点赞:(0) ⋅ 评论:(0)

一、实现Driver接口(下载驱动)

java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。

在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现

驱动:

  • Oracle的驱动:oracle.jdbc.driver.OracleDriver

  • mySql的驱动: com.mysql.jdbc.Driver

下载MySQL驱动:

  1. 下载地址:https://dev.mysql.com/downloads/connector/j/

  2. 选择Platfrom Inndependent

     

  3. 选择下载包 TAR是Linux下载包/ZIP是Windows下载包

     

在IDEA中加载JAR包

  1. 在驱动下载地址中找到jar包,并复制

  2. 在模块下准备lib目录,并将jar包放在该目录下

  3. 点击jar包,选择Add as Library

  4. Level选择在模块下,即添加jar包成功

二、声明配置文件,建立连接

声明配置文件

  1. 在src下,新建properties配置文件

  2. 准备4个连接数据库的4个基本信息

    user为数据库用户名称;

    password为数据库密码

    url用于识别一个被注册的驱动程序,驱动程序管理器通过这个url选择正确的驱动程序,从而建立数据库的连接

【注意:】在数据库8.0以上的驱动,需要在url加入时区才能正常识别。例:

url=jdbc:mysql://localhost:3306/book?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

//book为数据库名称 新加入时区可复制如下,并粘贴在数据库名称后面:

?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

建立连接

  1. 读取配置文件中的4个基本信息

    InputStream is = MannualConnection.class.getClassLoader().getResourceAsStream("jdbc.properties");
    Properties pros = new Properties();
    pros.load(is);
    
    String user = pros.getProperty("user");
    String password = pros.getProperty("password");
    String url = pros.getProperty("url");
    String driverClass = pros.getProperty("driverClass");

  2. 加载驱动

    Class.forName(driverClass);

  3. 获取连接

    Connection conn = DriverManager.getConnection(url,user,password);
    System.out.println(conn);

三、将获取连接和关闭连接封装为方法

好处:将连接封装为方法,在进行sql语句操作时可直接调用,避免了大量的冗余操作。

准备JdbcUtils包/或在utils包下准备JdbcUtils

  1. 新建JdbcUtils类

  2. 连接方法:将第二步的操作复制并粘贴到该getConnection()方法下,示例:

  3. 关闭方法:复制如下代码

    public static void closeResource(Connection conn,Statement ps,ResultSet rs){
       try {
          if(ps != null)
             ps.close();
       } catch (SQLException e) {
          e.printStackTrace();
       }
       try {
          if(conn != null)
             conn.close();
       } catch (SQLException e) {
          e.printStackTrace();
       }
       try {
          if(rs != null)
             rs.close();
       } catch (SQLException e) {
          e.printStackTrace();
       }
    }
    
    
    


网站公告

欢迎关注微信公众号

今日签到

点亮在社区的每一天
签到