sql >> データベース >  >> RDS >> Oracle

Tomcat 9 と Apache DBCP + Spring 5 + Oracle 12c + SqlArrayValue

    spring-data-jdbc-ext は EOL のようです。 SqlArrayValue クラスは単に接続をアンラップしていません。私は最終的に JDBC 拡張機能を放棄し、接続のアンラップを処理する独自の非常によく似たクラスを展開しました。これは現在、WebLogic と Tomcat (accessToUnderlyingConnectionAllowed を true に設定) で機能し、DBCP と Tomcat のネイティブ接続プール (accessToUnderlyingConnectionAllowed は不要) で動作します。

    java.sql.Connection のインポート;java.sql.SQLException のインポート;org.springframework.dao.InvalidDataAccessApiUsageException のインポート;org.springframework.jdbc.core.support.AbstractSqlTypeValue のインポート;oracle.jdbc.OracleConnection のインポート;public class OracleSqlArrayValue extends AbstractSqlTypeValue { プライベート T[] 値;プライベート文字列の defaultTypeName; public OracleSqlArrayValue(T[] 値) { this.values =値; } public OracleSqlArrayValue(T[] values, String defaultTypeName) { this.values =values; this.defaultTypeName =defaultTypeName; } @Override protected Object createTypeValue(Connection conn, int sqlType, String typeName) throws SQLException { if (typeName ==null &&defaultTypeName ==null) { throw new InvalidDataAccessApiUsageException( "型名が定義されていません。デフォルトの型名でクラスをインスタンス化します。" ); } if (!conn.isWrapperFor(OracleConnection.class)) { throw new InvalidDataAccessApiUsageException( "OracleConnection のラップを解除できません。Oracle DB に接続していることを確認してください。"); } return conn.unwrap(OracleConnection.class).createOracleArray( typeName !=null ? typeName :defaultTypeName, values); }}  


    1. SQLServer2005のVARBINARYフィールドのサイズ

    2. sqliteDBからテーブル名を一覧表示する方法-Android

    3. mysqlは最適化による順序でグループをカウントします

    4. このphpエラーメッセージの背後にある意味を誰かが知っていますか?