2016-05-11 12 views
2

Spring MVCを初めて使用しているので、HikariCPとJdbcTemplateを統合しようとしました。しかし、JdbcTemplateをHikariCP DataSourceにポイントする方法については、多くのエラーがありました。 applicationContext.xmlをHikariCPとJdbcTemplateをSpringで使用する方法MVC 4

<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()); 
    } 

これはうまくいけばいいと思う。

関連する問題