首页 > 代码库 > 使用DriverManager获取数据库连接的一个小改进

使用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之类的配置文件写好,然后想用哪个来这个配置文件中把名字一改就行,改动非常小(懒人专用~)

使用DriverManager获取数据库连接的一个小改进