zoukankan      html  css  js  c++  java
  • 通过Driver获取数据库连接

    先看一下文件,在当前包下有一个properties配置文件,在根目录下有一个lib文件夹,里面放的是mySql的驱动jar包

    Driver :是一个接口,数据库厂商必须提供实现的接口,能从其中获取数据库连接 可以通过Driver的实现类的对象获取数据库连接
    * 1.加入mySql驱动
    * 1.1 解压mysql-connector-java-5.1.39.zip 1.2 在当前项目下新建lib目录 1.3
    * 把mysql-connector-java-5.1.39-bin.jar复制到lib目录下 1.4 右键,buildPath,add to
    * buildPath加入到类路径下

    第一种方法,不需要配置文件,直接获取数据库连接

     1 @Test
     2     public void testDriver() throws Exception {
     3         // 1.创建一个Driver 的实现类的对象
     4         Driver driver = new com.mysql.jdbc.Driver();
     5         // 2.准备连接数据库的基本信息,url,user,password
     6         String url = "jdbc:mysql://localhost:3306/test";
     7 
     8         Properties info = new Properties();
     9         info.put("user", "root");
    10         info.put("password", "123456");
    11 
    12         // 3.调用Driver接口的connect(url,info)获取数据库连接
    13         Connection connection = driver.connect(url, info);
    14 
    15         System.out.println(connection);//com.mysql.jdbc.JDBC4Connection@73f712
    16     }

     为了使得程序解耦,并且更加通用,使用如下方案

    编写一个通用的方法,在不修改源程序的情况下,可以获取任何数据库的连接 解决方案:把数据库驱动Driver
    实现类的全类名、url、user、password 放入到一个配置文件中, 通过修改配置文件的方式实现和具体的数据库解耦。

    代码:

    public Connection getConnection() throws Exception {
    
            String driverClass = null;
            String jdbcUrl = null;
            String user = null;
            String password = null;
    
            // 读取类路径下的 jdbc.properties 文件
            InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
            Properties properties = new Properties();
            properties.load(in);
            driverClass = properties.getProperty("driver");
            jdbcUrl = properties.getProperty("jdbcUrl");
            user = properties.getProperty("user");
            password = properties.getProperty("password");
    
            // 通过反射创建 Driver 对象.
            Driver driver = (Driver) Class.forName(driverClass).newInstance();
            Properties info = new Properties();
            info.put("user", user);
            info.put("password", password);
    
            // 通过 Driver 的 connect 方法获取数据库连接.
            Connection connection = driver.connect(jdbcUrl, info);
            return connection;
        }
        
        @Test
        public void testGetConnection() throws Exception{
            System.out.println(getConnection());//com.mysql.jdbc.JDBC4Connection@1556938
        }

    properties文件内容如下

    #driver=oracle.jdbc.driver.OracleDriver
    #jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl
    #user=scott
    #password=java
    
    driver=com.mysql.jdbc.Driver
    jdbcUrl=jdbc:mysql://localhost:3306/test
    user=root
    password=123456

    这样如果想连接其他数据库时,只需修改此文件即可,无需修改代码

  • 相关阅读:
    Centos服务器搭建(3)——安装maven
    Centos服务器搭建(2)——安装tomcat
    Centos服务器搭建(1)——安装jdk
    mysql主从复制
    Json中返回换行符处理
    github pages 绑定域名
    SharePoint学习笔记——子页面
    SharePoint学习笔记——母版页
    SSH+Oracle的整合(SSH与Oracle整合坑巨多)
    SSH整合做CRUD(大神老师整理)
  • 原文地址:https://www.cnblogs.com/gode/p/5815280.html
Copyright © 2011-2022 走看看