第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java.lang.ClassCastException:無法將類 com.mysql

java.lang.ClassCastException:無法將類 com.mysql

德瑪西亞99 2023-09-06 17:04:00
我正在嘗試為我的學(xué)校項目設(shè)置微服務(wù)。我正在使用java spring boot框架。但是當(dāng)我編譯并運行數(shù)據(jù)庫連接時,它給了我錯誤: java.lang.ClassCastException: class com.mysql.cj.jdbc.ConnectionImpl 無法轉(zhuǎn)換為 class com.hrms.employees.db.Connection (com.mysql. cj.jdbc.ConnectionImpl 和 com.hrms.employees.db.Connection 位于加載程序“app”的未命名模塊中)package com.hrms.employees.db;import java.sql.DriverManager;import java.sql.SQLException;public class Connection {    private static Connection conn;    static{        try {            Class.forName("com.mysql.jdbc.Driver");            conn = (Connection) DriverManager.getConnection("jdbc:mysql://itsatest2.c45g5gg8tx2m.ap-southeast-1.rds.amazonaws.com","admin","zx55774463");            System.out.println("connected");        }        catch(ClassNotFoundException | SQLException e){            System.out.println(e.getMessage());        }    }    public static Connection getConnection(){        return conn;    }}Grade.build 中的依賴項dependencies {    implementation 'org.springframework.boot:spring-boot-starter-web'    testImplementation 'org.springframework.boot:spring-boot-starter-test'    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.15'}我期望輸出字符串為“connected”
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

問題是你的類被調(diào)用Connection,而DriverManager.getConnection()返回一個java.sql.Connection. 當(dāng)使用 MySQL Connector/J 時,實際返回的實現(xiàn)是com.mysql.cj.jdbc.ConnectionImpl,這顯然不是您的類的實例com.hrms.employees.db.Connection,因此轉(zhuǎn)換失敗。

您要么需要重命名您的類,要么需要將變量定義為private static java.sql.Connection conn并刪除強制轉(zhuǎn)換(因此使用conn = DriverManager.getConnection)。

順便說一句,對數(shù)據(jù)庫連接使用靜態(tài)變量幾乎總是錯誤的解決方案,在長時間運行的應(yīng)用程序中,當(dāng)連接關(guān)閉或丟失時,它可能會導(dǎo)致問題,而在高度并發(fā)的應(yīng)用程序中,這會導(dǎo)致在多個線程之間共享單個連接這可能會導(dǎo)致競爭條件或其他難以診斷的錯誤。

更好的解決方案是使用連接池數(shù)據(jù)源,例如 Apache DBCP、c3p0 或 HikariCP,并僅為一個工作單元獲取連接,然后將其關(guān)閉(這會將其返回到池中以供重用)。


查看完整回答
反對 回復(fù) 2023-09-06
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號