美文网首页Java学习笔记
WEB资源文件和数据库连接池

WEB资源文件和数据库连接池

作者: Czw_hacker | 来源:发表于2016-11-30 15:14 被阅读34次

    WEB资源文件

    资源文件是为了解决程序的硬编码问题,比如数据库连接的URL、账号及密码。当程序打成包后源代码会变成class文件修改会极为麻烦,这种文件是在打包后还是可读可修改的文件

    使用

    通常放在项目根目录下resources文件夹,文件后缀为properties,如config.properties 文件中存放数据以键值对出现=左边为键,右边为值,不能使用空格和;

    数据库连接值,获取值见数据库连接池

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql:///book_mvc
    jdbc.username=root
    jdbc.password=root
    

    数据库连接池

    Commons DBCP http://commons.apache.org/dbcp/

    文档解读:许多Apache项目支持与关系数据库的交互。为每个用户创建新连接可能很耗时(通常需要多秒时钟时间),以便执行可能需要几毫秒的数据库事务。在公共托管的互联网应用中,每个用户打开连接可能是不可行的,其中并发用户的数量可能非常大。因此,开发人员通常希望在所有应用程序的当前用户之间共享开放连接的“池”。在任何给定时间实际执行请求的用户数量通常是活动用户总数的非常小的百分比,并且在请求处理期间是唯一需要数据库连接的时间。应用程序本身登录到DBMS,并在内部处理任何用户帐户问题。

    public class ConnectionManage {
    
        private static  String DRIVER;
        private static  String URL;
        private static  String USERNAME;
        private static  String PASSWORD;
     
        private static BasicDataSource dataSource = new BasicDataSource();
    
        //数据库连接池使用前只需创建一次,所以写在静态代码块中
        static {
            Properties properties = new Properties();
    
            try {
                //获取配置资源
                properties.load(ConnectionManage.class.getClassLoader().getResourceAsStream("config.properties"));
    
                DRIVER = properties.getProperty("jdbc.driver");
                URL = properties.getProperty("jdbc.url");
                USERNAME = properties.getProperty("jdbc.username");
                PASSWORD = properties.getProperty("jdbc.password");
    
            } catch (IOException e) {
                e.printStackTrace();
                throw new DataAccessException("获取数据库连接池异常",e);
            }
            //连接数据库
            dataSource.setDriverClassName(DRIVER);
            dataSource.setUrl(URL);
            dataSource.setUsername(USERNAME);
            dataSource.setPassword(PASSWORD);
    
            //设置dataSource对象参数 分别为 初始个数 最小 最大 和最大等待时间
            dataSource.setInitialSize(5);
            dataSource.setMinIdle(5);
            dataSource.setMaxIdle(20);
            dataSource.setMaxWaitMillis(5000);
    
        }
        
          //返回BasicDataSource对象
          public static DataSource getDataSource(){
                return dataSource;
      }
    }
    

    相关文章

      网友评论

        本文标题:WEB资源文件和数据库连接池

        本文链接:https://www.haomeiwen.com/subject/mnrtmttx.html