IDEA创建的Gradle项目无法读取jdbc.properties配置文件

一、首先创建jdbc.properties文件,但是用gradle构建的项目目录结构是如下样式的

创建jdbc.properties方法:右键---new---Resource Bundle---输入文件名即可创建properties配置文件

其中jdbc.properties文件中的内容如下:
userName=root
password=root
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mysql

二、用于操作JDBC的工具类

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class JDBCUtils {
    /**
     * 关闭相关的资源
     * @param conn
     * @param ps
     * @param rs
     */
    public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 关闭相关的资源
     * @param conn
     * @param ps
     */
    public static void close(Connection conn, PreparedStatement ps) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static Connection getConnection() throws Exception {
        //1.从配置文件中读取连接的基本信息
        Properties pros = new Properties();
        // 默认加载的文件就在src下
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        pros.load(is);
        // 读取4个基本信息
        String userName = pros.getProperty("userName");
        String password = pros.getProperty("password");
        String driverClass = pros.getProperty("driverClass");
        String url = pros.getProperty("url");

        //2.加载驱动
        Class.forName(driverClass);

        //3.获取连接
        Connection connection = DriverManager.getConnection(url + "?useUnicode=true&characterEncoding=utf8", userName, password);
        return connection;
    }
}

注:url 拼接 "?useUnicode=true&characterEncoding=utf8",是因为运行时出现的另一个关于编码的问题,如果出现此问题,直接在连接的URL后加上?useUnicode=true&characterEncoding=utf8即可

三、已创建好jdbc.properties文件,测试却取不出值,出现如下错误:

此时很明显是路径不对,但是无论是将jdbc.properties文件放在src根目录还是main、Java目录或者其他目录下都是一样的错误

四、解决方法:

因为getResourceAsStream在这种项目的目录结构下对应的是resources目录,若是没有则需要自己手动创建

创建方法:放在main目录上右键----new---Directory---resources,必须在mian下创建,与java目录同一层级

创建完后将jdbc.properties拖至新建的resoures目录下

注意新建的resources目录图标,确保新建的目录如图中一致,完成之后即可正常读取配置文件

猜你喜欢

转载自blog.csdn.net/xuwei7746521/article/details/81435767