Oracle采纳DriverManager获取数据库连接的一个小立异

是因为选用DriverManager获取数据库连接时,由于DriverManager已毕类中有一段静态代码块,可以一向登记驱动,且可以同时管理多个驱动程序

据此当换数据库连接时索要指定差别的数据库,那么就须求频仍修改properties配置文件(就算并不劳动),所以本人想将各种驱动连接程序的properties文件都写好

具体当进行连接时,再加一个安排文件,这一个布局文件中指定传入哪个properties文件

先来看一下文件路径(图片复制粘贴为什么不好使了!!!!)

src

  com.jdbc.java

    TestJDBC.java

  properties

    jdbcName.properties

    mySql.properties

左右大体是那般了,第一层是包,下边是各类文件

代码如下

/**
     * 指定一个配置文件中进行选择使用哪个配置文件(好绕口。。。)
     * 
     * @return
     * @throws Exception
     */
    public Connection getConnection3() throws Exception {
        // 准备连接数据库的四个字符串
        // 驱动的全类名
        String driverClass = null;
        String jdbcUrl = null;
        String user = null;
        String password = null;
        String jdbcName = null;
        // 读取jdbcName.properties文件
        InputStream inStream = getClass().getClassLoader().getResourceAsStream("properties/jdbcName.properties");
        Properties propertiesOfName = new Properties();
        propertiesOfName.load(inStream);
        jdbcName = propertiesOfName.getProperty("jdbcName");
        // 读取需要的properties 文件
        InputStream in = getClass().getClassLoader().
                getResourceAsStream("properties/" + jdbcName + ".properties");
        Properties properties = new Properties();
        properties.load(in);
        driverClass = properties.getProperty("driver");
        jdbcUrl = properties.getProperty("jdbcUrl");
        user = properties.getProperty("user");
        password = properties.getProperty("password");

        // 加载数据库驱动程序(注册驱动)
        Class.forName(driverClass);

        Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
        return connection;
    }

测试代码如下

@Test
    public void testGetConnection3() throws Exception {
        System.out.println(getConnection3());
    }

结果如下

com.mysql.jdbc.JDBC4Connection@104a311

需注意的标题:那种艺术指定properties文件时不或许拔取相对路径,会报错

jdbcName.properties中的代码如下

jdbcName=mySql

 

此处的代码是或不是万分简洁,只需把各样什么mySql,Oracle之类的安顿文件写好,然后想用哪个来这么些布局文件中把名字一改就行,改动万分小(懒人专用~)

相关文章