最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Class.forName()在代碼上無法執(zhí)行報錯NotFound的解決過程

 更新時間:2026年06月01日 11:52:40   作者:蘇木零榆  
這段文章主要討論了ClassNotFoundException的錯誤原因,指出問題源于文件夾命名錯誤,應命名為WEB-INF而非WEB-INFO,并強調了正確配置的重要性

異常信息

ClassNotFoundException

前因

在寫JDBCUtils工具類的時候,發(fā)現測試時無法獲取到正常的數據,查看日志后發(fā)現報錯ClassNotFoundException。

錯誤原因

  • jar包導入正常
  • 所有配置文件的配置信息正常
  • SQL語句以及其他代碼編寫正常

文件夾命名異常:

  • 在web目錄下的創(chuàng)建的目錄名稱必須創(chuàng)建為WEB-INF,但是我創(chuàng)建的是WEB-INFO,隨后創(chuàng)建的lib目錄,放進了jar包,因此出現了該錯誤。
  • 然而在最初的學習中也是創(chuàng)建的WEB-INFO目錄,卻可以運行正常,目前原因未知。

代碼實現

配置文件

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/userlogin
username=root
password=guoyuhang
initialSize=5
maxActive=10
maxWait=3000

JDBC代碼實現

package cn.itcast.util;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
    private static String url;
    private static String password;
    private static String user;
    private static String driverClassName;
    static {
        try {
            //開始讀數據
            Properties properties = new Properties();
            //獲取到該類所在的目錄
            ClassLoader classLoader = JDBCUtils.class.getClassLoader();
            URL resource = classLoader.getResource("druid.properties");
            String path = resource.getPath();
            properties.load(new FileReader(path));
            //獲取數據,賦值
            url = properties.getProperty("url");
            user = properties.getProperty("username");
            password = properties.getProperty("password");
            driverClassName = properties.getProperty("driverClassName");
            Class.forName(driverClassName);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }
    /**
     * 釋放資源的方法  這里實現了重載 雙參數和三參數
     */
    public static void close(Statement stmt, Connection conn){
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void close(ResultSet rs, Statement stmt, Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 淺談Java 8 新增函數式接口到底是什么

    淺談Java 8 新增函數式接口到底是什么

    這篇文章主要介紹了淺談Java 8 新增函數式接口到底是什么,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • java中常用的排序方法

    java中常用的排序方法

    今天給大家介紹一下,java中常用的排序方法。
    2013-04-04
  • Spring自動配置之condition條件判斷上篇

    Spring自動配置之condition條件判斷上篇

    這篇文章主要為大家介紹了SpringBoot condition條件判斷功能的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • IDEA搭建SpringBoot離線工程的方法

    IDEA搭建SpringBoot離線工程的方法

    這篇文章主要介紹了IDEA搭建SpringBoot離線工程的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • SpringBoot多數據源解決方案:dynamic-datasource-spring-boot-starter

    SpringBoot多數據源解決方案:dynamic-datasource-spring-boot-starter

    本文主要介紹了SpringBoot多數據源解決方案,使用dynamic-datasource-spring-boot-starter實現,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Java Unsafe 類的講解

    Java Unsafe 類的講解

    這篇文章主要給大家分享了 Java Unsafe 類的講解,文章圍繞Unsafe 類的相關資料展開詳細內容,具有一定的參考價值需要的朋友可以參考一下
    2021-11-11
  • Java的Struts框架中Action的編寫與攔截器的使用方法

    Java的Struts框架中Action的編寫與攔截器的使用方法

    這篇文章主要介紹了Java的Struts框架中Action的編寫與攔截器的使用方法,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • Java并發(fā)編程中的synchronized關鍵字詳細解讀

    Java并發(fā)編程中的synchronized關鍵字詳細解讀

    這篇文章主要介紹了Java并發(fā)編程中的synchronized關鍵字詳細解讀,在Java早期版本中,synchronized 屬于 重量級鎖,效率低下,這是因為監(jiān)視器鎖(monitor)是依賴于底層的操作系統的Mutex Lock來實現的,Java 的線程是映射到操作系統的原生線程之上的,需要的朋友可以參考下
    2023-12-12
  • SpringBoot如何使用Fastjson解析Json數據

    SpringBoot如何使用Fastjson解析Json數據

    這篇文章主要介紹了SpringBoot如何使用Fastjson解析Json數據,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Spring Bean的定義及三種創(chuàng)建方式

    Spring Bean的定義及三種創(chuàng)建方式

    本文主要介紹了Spring容器獲取Bean的9種方式小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論

中牟县| 太康县| 汉源县| 安化县| 巴里| 丽江市| 大姚县| 榆树市| 中方县| 方山县| 彭泽县| 邵东县| 内黄县| 囊谦县| 乌拉特后旗| 连云港市| 饶平县| 张掖市| 三门峡市| 巫山县| 舟曲县| 温泉县| 葵青区| 宁乡县| 大宁县| 鄯善县| 辽宁省| 凭祥市| 山西省| 百色市| 敖汉旗| 栾川县| 玉溪市| 渝中区| 西华县| 伊宁市| 太仓市| 祁阳县| 板桥市| 大城县| 濉溪县|