스프링 jdbc 및 MsSQL 서버를 사용하는 중간 규모 프로젝트를 수행 중이며, 프로젝트가 거의 50 % 완료되었습니다. 이제는 모든 요청이 삽입 및 업데이트를 수행 할 때 특별히 많은 열과 대형 데이터 세트는 매우 느리게 실행되며 때로는 연결이 닫히는 것을 보여줍니다. 지금 C3p0 또는 유사한 연결 풀링을 통합하려고 생각하지만 이미 완료 한 DAO 코드를 변경할 수 없습니다. 변수를 DAOHelper 클래스로 구현하고 컨트롤러 클래스에서 DAOClass의 autowiring을 사용하여 applicationContext.xml에 JDBCTemplate 종속성을 주입했습니다. , 그리고이 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