Connexion JDBC mise en commun à l'aide de C3P0

Qui suit est ma classe d'assistance pour obtenir de l'DB connexion:

J'ai utilisé le C3P0 le regroupement de connexion, comme décrit ici.

public class DBConnection {

    private static DataSource dataSource;
    private static final String DRIVER_NAME;
    private static final String URL;
    private static final String UNAME;
    private static final String PWD;

    static {

        final ResourceBundle config = ResourceBundle
                .getBundle("props.database");
        DRIVER_NAME = config.getString("driverName");
        URL = config.getString("url");
        UNAME = config.getString("uname");
        PWD = config.getString("pwd");

        dataSource = setupDataSource();
    }

    public static Connection getOracleConnection() throws SQLException {
        return dataSource.getConnection();
    }

    private static DataSource setupDataSource() {
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        try {
            cpds.setDriverClass(DRIVER_NAME);
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
        cpds.setJdbcUrl(URL);
        cpds.setUser(UNAME);
        cpds.setPassword(PWD);
        cpds.setMinPoolSize(5);
        cpds.setAcquireIncrement(5);
        cpds.setMaxPoolSize(20);
        return cpds;
    }
}

dans le DAO je vais écrire quelque chose comme ceci:

try {
            conn = DBConnection.getOracleConnection();

            ....


} finally {
    try {
        if (rs != null) {
            rs.close();
        }
        if (ps != null) {
            ps.close();
        }
        if (conn != null) {
            conn.close();
        }
    } catch (SQLException e) {
        logger
                .logError("Exception occured while closing cursors!", e);

    }

Maintenant, ma question est dois-je la peine de faire toutes autres opérations de nettoyage autres que de fermer les curseurs(connexion/déclaration/resultSet/preparedStatement) répertoriés dans le bloc finally.

Qu'est-ce que cette de nettoyage?? Quand et où dois-je le faire?

Si vous trouvez quelque chose de mal dans le code ci-dessus, nous vous prions d'.

  • dans le JDK 7, vous n'avez pas besoin de fermer preparedStatement, elle met en œuvre AutoClosable. en raison de ce post
InformationsquelleAutor jai | 2009-09-22