Источник данных Tomcat и jdbctemplate

Ранее я внедрял источник данных (и использовал jdbctemplate для операций с БД), используя Spring DI отдельно для двух моих веб-приложений, но затем я считаю, что лучше использовать источник данных и пул соединений на уровне Tomcat. Итак, теперь я получаю источник данных из jndi и создаю jdbctemplate, используя этот источник данных

public static DataSource getTomcatDataSource() {
        DataSource dataSource = null;

        try {
            Context initContext = new InitialContext();
            Context envContext = (Context) initContext.lookup("java:/comp/env");
            dataSource = (DataSource) envContext.lookup("jdbc/vendorDB");
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        return dataSource;
    }

Добавляя больше деталей для объяснения моего сценария, я обновляю субаррайлист в db внутри цикла for. Итак, я думал, что наличие пула подключений завершит задачу быстрее

for(int fromIndex = 0, toIndex = (fromIndex +  batchSize  - 1); 
                fromIndex < (sheetList.size() - 1) ; 
                fromIndex = toIndex + 1, toIndex += batchSize){
            ....
List<GoogleSheetPojo> subSheetList = sheetList.subList(fromIndex, toIndex);

            try {
                jdbcTemplate = new JdbcTemplate(DatabaseUtility.getTomcatDataSource());

                rowsEffected = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {

                    @Override
                    public void setValues(PreparedStatement pstmt, int i) throws SQLException {
                        MyPojo bean = subSheetList.get(i);
                    ....
}

}

}

}

Итак, у меня было несколько сомнений здесь:

1) Операции обновления станут быстрыми?

2) мой метод источника данных является статическим, поэтому приложение будет использовать одно соединение с базой данных, или я должен получить источник данных без статического соединения для использования пула соединений с базой данных?

2) поскольку я создал jdbctemplate с помощью оператора new, будет jdbctemplate и pstmt будет безопасно закрыто приложением

Наконец, многопоточность ускорит операцию обновления?

Я надеюсь, что моя постановка проблемы понятна

0 ответов

Другие вопросы по тегам