Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

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

Tampaknya spring-data-jdbc-ext adalah EOL. Kelas SqlArrayValue tidak membuka koneksi. Saya akhirnya membuang ekstensi JDBC dan menggulirkan kelas saya yang sangat mirip yang menangani membuka bungkus koneksi. Ini sekarang berfungsi di WebLogic dan Tomcat (dengan accessToUnderlyingConnectionAllowed disetel ke true) DBCP dan kumpulan koneksi asli Tomcat (tidak diperlukan accessToUnderlyingConnectionAllowed).

import java.sql.Connection;
import java.sql.SQLException;

import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.jdbc.core.support.AbstractSqlTypeValue;

import oracle.jdbc.OracleConnection;

public class OracleSqlArrayValue<T> extends AbstractSqlTypeValue {
    private T[] values;
    private String defaultTypeName;

    public OracleSqlArrayValue(T[] values) {
        this.values = 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(
                    "No type named defined. Instantiate class with default type name.");
        }

        if (!conn.isWrapperFor(OracleConnection.class)) {
            throw new InvalidDataAccessApiUsageException(
                    "Unable to unwrap OracleConnection. Ensure you are connecting to an Oracle DB.");
        }

        return conn.unwrap(OracleConnection.class).createOracleArray(
                typeName != null ? typeName : defaultTypeName, values);
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mekanisme yang Diikuti oleh Oracle saat kami mengambil cadangan panas

  2. Ambil nilai yang berbeda dengan LISTAGG di Oracle 12C

  3. Maks dari jumlah kueri

  4. Mutasi Tabel di Oracle 11 disebabkan oleh suatu fungsi

  5. Fungsi panggilan VBA melalui VBA dan ADO