我有一個這樣的Java程序來測試出磚的JDBC連接磚JDBC驅動程序。
連接連接=零;嚐試{forname(司機);連接= DriverManager。getConnection (url、用戶名、密碼);如果(連接! = null) {system . out。println(建立“連接”);}{system . out。println(“連接失敗”);}= connection.createStatement聲明聲明();ResultSet rs =聲明。executeQuery (“select * from standard_info_service.daily_transactions”); while (rs.next()) { System.out.print("created_date: " + rs.getInt("created_date") + ", "); System.out.println("daily_transactions: " + rs.getInt("daily_transactions")); } } catch (Exception e) { System.out.println(e); }
然而,這個程序拋出一個錯誤:
連接建立警告:sun.reflect.Reflection。不支持getCallerClass。這將影響性能。java.sql。SQLException異常(辛巴):[SparkJDBCDriver](500618)錯誤發生而反序列化箭頭數據:sun.misc。安全或java.nio.DirectByteBuffer。< init >(長,int)
解決方案是什麼呢?
嗨@Jose岡薩雷斯,
這類似的問題在JDBC的雪花就是一個很好的參考,我能夠得到這個工作在Java OpenJDK 17日通過該JVM選項指定:
——add-opens = java.base / nio = ALL-UNNAMED
雖然我遇到的另一個問題使用apache DHCP SQL端點連接到數據磚:
引起的:java.sql。SQLFeatureNotSupportedException(辛巴):(JDBC)(10220)驅動程序不支持這個可選特性。
在com.simba.spark.exceptions.ExceptionConverter。toSQLException(未知來源)
com.simba.spark.jdbc.common.SConnection.setAutoCommit(未知源)
在com.simba.spark.jdbc.jdbc42.DSS42Connection。setAutoCommit(未知來源)
org.apache.commons.dbcp2.DelegatingConnection.setAutoCommit (DelegatingConnection.java: 801)
org.apache.commons.dbcp2.DelegatingConnection.setAutoCommit (DelegatingConnection.java: 801)
同樣的問題發生在我“光之輪”轉向。
最後,我明白了工作僅使用基本數據源和自動提交設置為False。BasicDataSource不適合生產,會有一個新的司機釋放,能更好地處理這個問題嗎?