• JAVA基础——使用配置文件


    一. 前言

            日常我们做项目中,我们经常会遇到这样的情况:由于开发环境和生产环境的不同,项目部署在生产环境之前,有些参数我们并不知道如何取值。例如:数据库链接设定,我们在部署生产环境之前,无法预知客户的数据库连接地址是什么,也无法预知数据库的用户名和密码。这种情况下,就需要我们将数据库的连接参数保存到某个文件中,项目需要链接数据库的时候,就从该文件中获取相关参数,以保证系统在生产环境中的正常运转。

            为了解决这种问题,我们就需要用到JAVA的properties文件。

    二. 介绍

            JAVA的配置文件是以properties为扩展名的,其内容为键值对形式存储,且键名和键值都是字符串格式。JAVA提供java.util.Properties类,可以非常方便的读取配置文件的信息。

    三. 使用

    1. 新建JAVA工程。

    2. 新建properties文件,名称为application.properties。

    SQL.url=jdbc:sqlserver://127.0.0.1; DatabaseName=BaseFrame
    SQL.userName=sa
    SQL.passWord=-+

    其中,SQL.url定义了数据库的链接地址;SQL.userName定义了用户名;SQL.passWord定义了密码。

    3. 新建Main.class并为其添加main方法。
    package com.luych.stu;
    
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Properties;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            // 将配置文件加载到流中
            InputStream in = Main.class.getClassLoader().getResourceAsStream("application.properties");
            // 创建并加载配置文件
            Properties pro = new Properties();
            pro.load(in);
            // 获取配置文件定义的值
            String url = pro.getProperty("SQL.url");
            System.out.println("配置文件中SQL.url的值为:"+url);
            String userName = pro.getProperty("SQL.userName");
            System.out.println("配置文件中SQL.userName的值为:"+userName);
            String passWord = pro.getProperty("SQL.passWord");
            System.out.println("配置文件中SQL.passWord的值为:"+passWord);
            // 使用
            Connection con = DriverManager.getConnection(url, userName, passWord);
            String sql = "select * from tbUser";
            PreparedStatement pstmt = con.prepareStatement(sql);
            ResultSet result = pstmt.executeQuery();
            int col = result.getMetaData().getColumnCount();
            System.out.println("============================");
            while (result.next()) {
                for (int i = 1; i <= col; i++) {
                    System.out.print(result.getString(i) + "	");
                    if ((i == 2) && (result.getString(i).length() < 8)) {
                        System.out.print("	");
                    }
                }
                System.out.println("");
            }
            System.out.println("============================");
        }
    }

    打印结果为:

    配置文件中SQL.url的值为:jdbc:sqlserver://127.0.0.1; DatabaseName=BaseFrame
    配置文件中SQL.userName的值为:sa
    配置文件中SQL.passWord的值为:-+
    ============================
    705244A7-B642-4161-9EC8-966044F15F16    admin        系统管理员    123    15295699492    123@abc.com
    4FE0FF3F-B015-482D-AB71-3321D57A7EF4    test1        Test1    123    15295699492    123@abc.com 
    ============================

    如此,我们就可以将配置文件中的值读取并使用了。

    四. 目录结构

    image

    五. 总结

            其实大家可能会想到:我直接将url、userName、passWord定义final变量中不就可以了嘛?这样的缺点是我们在将项目部署到生产环境之前,还需要重新调整我们的JAVA代码,并编译生成war包或jar包。而定义到环境变量中则不需要重新编译即可正常运行。

  • 相关阅读:
    如何提高沟通能力?
    如何做到科学决策?推荐你看这本《决策必读12篇》
    领导者如何让员工真心服从自己?
    MBA看什么书,MBA教材书目推荐
    有关战略管理的书,哪本最值得推荐?
    市场营销必看书籍推荐
    P1208 混合牛奶题解
    P5019 铺设道路题解
    P1728 陶陶摘苹果题解
    P1106 删数问题题解
  • 原文地址:https://www.cnblogs.com/LOVE0612/p/5730725.html
Copyright © 2020-2023  润新知