sql >> Databáze >  >> RDS >> Oracle

Oracle JDBC UCP a Java

Takže po opatrnosti a získání malé pomoci navíc z fóra Oracle. Konečně chápu, proč výše uvedený kód zobrazuje chybovou zprávu, kterou dostávám. Odpověď naleznete zde Protože nastavuji zdroj dat pokaždé, když smyčka prochází, v podstatě vytvářím více než jeden fond. Způsob, jak toho dosáhnout, je vytvořit jeden fond a poté z něj stáhnout připojení. Nový kód, který nahradí GetOracleConnection Vytvořil jsem singletonovou třídu pro zdroj dat a v kódu jednoduše získám připojení ze zdroje dat, jako je tento

Connection conn = Database.getInstance().GetPoolSource().getConnection();

package com.jam.DB;

import oracle.ucp.jdbc.PoolDataSource;
import oracle.ucp.jdbc.PoolDataSourceFactory;

public class Database {

private static Database dbIsntance;
private static PoolDataSource pds;

private Database() {
    // private constructor //
}

public static Database getInstance() {
    if (dbIsntance == null) {
        dbIsntance = new Database();
    }
    return dbIsntance;
}

public PoolDataSource GetPoolSource() {

    if (pds == null) {
        pds = PoolDataSourceFactory.getPoolDataSource();

        try {

            pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
            pds.setURL("jdbc:oracle:thin:@//localhost:1521/xe");
            pds.setUser("system");
            pds.setPassword("xxxx");
            pds.setMaxStatements(15);
            return pds;

        } catch (Exception e) {

        }
        return pds;
    }

    return pds;

  }
}



  1. předat pole do procedury Oracle

  2. Přeskočí úloha SQL Server plánované spuštění, pokud již běží?

  3. Použijte PostgreSQL SSL připojení v rezu s certifikáty podepsanými sebou samým

  4. JOOQ negeneruje přetížené procedury s tabulkovou hodnotou z PostgreSql