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

  • 相关阅读:
    activity学习参考
    Activity工作流入门
    Mysql 命令查看函数,触发器。。
    本地redis下载并启动
    Could not initialize class com.taobao.diamond.client.impl.DiamondEnvRepo
    mysql把表(表已有数据)的某列属性由空到非空,以及常用列操作
    easyexcel导出两种方式response返回文件流下载和保存到服务器返回下载链接
    EasyExcel导出带下拉框,并解决导出之后打开总是显示发现不可读取内容
    el-table的fixed固定列属性导致数据错位
    el-input按回车时,解决同时触发回车和失焦事件的问题
  • 原文地址:https://www.cnblogs.com/gode/p/5815691.html
Copyright © 2011-2022 走看看