2016-04-27 4 views
2

Я пытаюсь установить соединение с базой данных, используя postgresql. Я использовал простой vanila JDBC и смог успешно подключиться к базе данных.Spring JDBC не может подключиться к базе данных postgres, но простой JDBC может подключиться

Но, когда я даю те же параметры соединения, используя JdbcTemplate, я не могу подключиться.

Пожалуйста, посмотрите на мой код и конфигурации:

<bean name="dataSource" id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="org.postgresql.Driver" /> 
    <property name="url" value="jdbc:postgresql://localhost:5342/testdbnew" /> 
    <property name="username" value="admin1" /> 
    <property name="password" value="admin1" /> 
</bean>  

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

<bean name="announcementNewsDAO" id="announcementNewsDAO" class="test.dao.AnnouncementNewsDAOImpl"> 
</bean> 

и вот так я доступ по коду:

Сначала я создаю класс для реализации ApplicationContextAware .Затем, от ссылка Я вызываю объект jdbcTemplate.

public class ApplicationContextProvider implements ApplicationContextAware { 

private static ApplicationContext context; 

public static ApplicationContext getApplicationContext() { 
    return context; 
} 

@Override 
public void setApplicationContext(ApplicationContext ac) 
     throws BeansException { 
    context = ac; 
    System.out.println("Context initialized..."); 
    JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate"); 
    System.out.println("jdbcTemplate initialized.."); 

} 

}

и

это класс AnnouncementDAOImpl:

public class AnnouncementNewsDAOImpl implements AnnouncementNewsDAO { 


/** 
* JDBCTemplate object for accessing database 
*/ 
@Autowired 
private JdbcTemplate jdbcTemplate ; 


@Override 
public void insertAnnouncementNews(AnnouncementNews news) { 

    String insertQuery = "<db query for insert>"; 
    try { 

     Object[] args = new Object[]{Integer.valueOf(news.getSlno()), news.getStakeholder_code(), news.getInfo_type(), news.getAnnouncement_news(),null,null}; 


     int result = jdbcTemplate.update(insertQuery, args); 

     if(result!=0){ 
      System.out.println("Announcement news inserted for the serial number : "+news.getSlno()); 
     }else{ 
      System.err.println("Could not insert announcement news for the serial number : "+news.getSlno()); 
     } 


    } catch (ParseException pe) { 
     System.err.println("Exception occurred while parsing date : "+pe.getMessage()); 
    } 
} 

и я получаю ошибку:

org.springframework.jdbc.CannotGetJdbcConnectionException: Не удалось получить JDBC Con nection; Вложенное исключение - org.postgresql.util.PSQLException: Соединение отклонено. Убедитесь, что имя хоста и порт правильные и что почтмейстер принимает соединения TCP/IP. на org.springframework.jdbc.datasource.DataSourceUtils.getConnection (DataSourceUtils.java:80) в org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:628) в org.springframework.jdbc.core. JdbcTemplate.update (JdbcTemplate.java:907) на org.springframework.jdbc.core.JdbcTemplate.update (JdbcTemplate.java:968) в org.springframework.jdbc.core.JdbcTemplate.update (JdbcTemplate.java:978) at Вызвано: org.postgresql.util.PSQLException: соединение отклонено. Убедитесь, что имя хоста и порт правильные и что почтмейстер принимает соединения TCP/IP. на org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl (ConnectionFactoryImpl.java:207)

+1

Ваше соединение закрыто сервер отклонил соединение, вы должны проверить настройки брандмауэра. –

+0

Если это Windows, отключите брандмауэр. Кроме того, я надеюсь, что данные конфигурации верны. –

+0

Этот вопрос, вероятно, должен быть закрыт, поскольку это была просто опечатка, которая была проблемой. –

ответ

3

опечатка в порту?

<property name="url" value="jdbc:postgresql://localhost:5342/iitkgpdbnew" /> 

порт PostgreSQL по умолчанию 5432. Если вы не изменили его в 5342, конечно :)

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