Я делаю проект среднего размера с весенним jdbc и сервером MsSQL, проект выполняется почти на 50%, теперь, когда каждый запрос делает множество вставок и обновлений специально с теми таблицами, которые содержат большое количество столбцов и больших наборов данных выполняется очень медленно, а иногда и закрытие соединения. Теперь я собираюсь интегрировать C3p0 или аналогичный пул соединений, но я не могу изменить любой код DAO, который я уже сделал. Я реализовал класс DAOHelper с переменной JDBCTemplate и ввел зависимость JDBCTemplate в applicationContext.xml с автоподстановкой DAOClass в классе контроллера , и я распространил этот DAOHelper на все классы DAO и использовал этот jdbcTemplate для выполнения JDBC-операций.Замена пула подключений для уже реализованного проекта Spring Jdbctemplate
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://192.168.1.101:1433;databaseName=OrderManager"/>
<property name="username" value="sa"/>
<property name="password" value="520759"/>
</bean>
<bean id="JdbcDataSource" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="ds"/>
</bean>
<bean id="OrderDAO" class="com.ordermanager.order.dao.OrderDAO" >
<property name="jdbcTemplate" ref="JdbcDataSource"/>
<property name="transactionManager" ref="transactionManager"/>
</bean>
@Controller
public class OrderController {
@Autowired
OrderDAO orderDAO;
@RequestMapping(value = "/addNewItem", method = RequestMethod.GET)
public ModelAndView addItem(@RequestParam("ParamData") JSONObject paramJson) {
ApplicationContext ctx = new FileSystemXmlApplicationContext(ConstantContainer.Application_Context_File_Path);
OrderDAO orderDAO = (OrderDAO) ctx.getBean("OrderDAO");
return new ModelAndView("MakeResponse", "responseValue", orderDAO.addItem(paramJson));
}
public class DAOHelper {
private JdbcTemplate jdbcTemplate;
private PlatformTransactionManager transactionManager;
public PlatformTransactionManager getTransactionManager() {
return transactionManager;
}
public void setTransactionManager(PlatformTransactionManager txManager) {
this.transactionManager = txManager;
}
public JdbcTemplate getJdbcTemplate() /*I am using this Method for all JDBC Task*/ {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
Теперь с минимальным кодом изменения, как я могу интегрировать C3P0 или любое хорошее соединение пулов библиотеки с моим уже написанным кодом.
Спасибо ... он работал супер гладкий ..... – Chanky