2016-05-11 1 views
2

Я новичок в Springs MVC, и я попытался интегрировать HikariCP с JdbcTemplate. Но получалось много ошибок в любой помощи, как указать JdbcTemplate на HikariCP DataSource.Как использовать HikariCP с JdbcTemplate в Springs MVC 4

в applicationContext.xml

<bean id="dataSource" class="com.zaxxer.hikari.HikariConfig"> 
<property name="poolName" value="springHikariCP" /> 
<property name="connectionTestQuery" value="SELECT 1" /> 
<property name="dataSourceClassName"  value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" /> 
<property name="dataSourceProperties"> 
    <props> 
     <prop key="url">${jdbc.url}</prop> 
     <prop key="user">${jdbc.username}</prop> 
     <prop key="password">${jdbc.password}</prop> 
    </props> 
</property> 
</bean> 

<bean id="jdbcTemplate" class="com.zaxxer.hikari.HikariDataSource" destroy- method="close"> 
    <property name="dataSource" ref="dataSource"></property> 
</bean> 

И в контроллере:

контроллер общественного класса HandleWareHouse {

private DataSource dataSource; 
private JdbcTemplate jdbcTemplate; 


public void setDataSource(DataSource dataSource){ 
    this.dataSource = dataSource; 
} 


@RequestMapping(value="/saveProduct_categories", method = RequestMethod.POST) 
@ResponseBody 
public String insertPc(@RequestParam Map<String,String> requestParams){ 
    jdbcTemplate = new JdbcTemplate(dataSource); 
    String sql = "INSERT INTO product_categories(name,code,des,grp_name) VALUES(?,?,?,?)"; 
    jdbcTemplate.update(sql, new Object[] {requestParams.get("pname"),requestParams.get("pcode"),requestParams.get("stext"),requestParams.get("pcategory")}); 
    return "sucess"; 
    } 

} 

Но получаю ошибку, как показано ниже:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdbcTemplate' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.zaxxer.hikari.HikariConfig' to required type 'javax.sql.DataSource' for property 'dataSource'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [com.zaxxer.hikari.HikariConfig] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found 
+0

Следуйте инструкциям здесь http://frameworkonly.com/hikaricp-connection-pooling-in-spring-hibernate-jpa/ – Nitin

ответ

0

Я использовал spring javaconfig для настройки источника данных и получения jdbctemplate. Я думаю, что это лучший

@Bean 
    public DataSource getDataSource() { 

     private HikariDataSource dataSource() { 
      final HikariDataSource ds = new HikariDataSource(); 
      ds.setMaximumPoolSize(100); 
      ds.setDriverClassName("oracle.jdbc.driver.OracleDriver"); 
      ds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:XE"); ; 
      ds.setUsername("username"); 
      ds.setPassword("password"); 
      return ds; 
     } 

    } 

    @Bean 
    public JdbcTemplate getJdbcTemplate() { 

     return new JdbcTemplate(getDataSource()); 
    } 

Надеюсь, это хорошо сработает.

Смежные вопросы