Oracle
 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).

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. Как да накарам SQL*Plus да създава изгледи / таблици с празен ред в средата на оператора за създаване?

  2. Как да вмъкнете множество записи в Oracle DB с помощта на Node.js

  3. типовете локални колекции не са разрешени в SQL изрази

  4. Как да преместите файл от една директория в друга с помощта на PL SQL

  5. Не може да се създаде Oracle View с достъп до обекти на други схеми, въпреки разрешенията