gpt4 book ai didi

hibernate - org.h2.jdbc.JdbcSQL异常 : Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-193]

转载 作者:行者123 更新时间:2023-12-05 07:35:02 24 4
gpt4 key购买 nike

谁能告诉我我的代码有什么问题

hibernate 配置

package com.app.EcommerceBackend.config;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp2.BasicDataSource;
import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBuilder;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@ComponentScan(basePackages={"com.app.EcommerceBackend.dto"})
@EnableTransactionManagement
public class HibernateConfig {

// Change the below based on the DBMS you choose
private final static String DATABASE_URL = "jdbc:h2:tcp://localhost/~/ecommerce";
private final static String DATABASE_DRIVER = "org.h2.Driver";
private final static String DATABASE_DIALECT = "org.hibernate.dialect.H2Dialect";
private final static String DATABASE_USERNAME = "sa";
private final static String DATABASE_PASSWORD = "";

// dataSource bean will be available
@Bean
public DataSource getDataSource() {

BasicDataSource dataSource = new BasicDataSource();

// Providing the database connection information
dataSource.setDriverClassName(DATABASE_DRIVER);
dataSource.setUrl(DATABASE_URL);
dataSource.setUsername(DATABASE_USERNAME);
dataSource.setPassword(DATABASE_PASSWORD);


return dataSource;

}

// sessionFactory bean will be available

@Bean
public SessionFactory getSessionFactory(DataSource dataSource) {

LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource);

builder.addProperties(getHibernateProperties());
builder.scanPackages("com.app.EcommerceBackend.dto");

return builder.buildSessionFactory();

}



// All the hibernate properties will be returned in this method
private Properties getHibernateProperties() {

Properties properties = new Properties();


properties.put("hibernate.dialect", DATABASE_DIALECT);
properties.put("hibernate.show_sql", "true");
properties.put("hibernate.format_sql", "true");

//properties.put("hibernate.hbm2ddl.auto", "create");


return properties;
}

// transactionManager bean
@Bean
public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {
HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory);
return transactionManager;
}


}

类别测试用例

package com.app.EcommerceBackend.test;

import static org.junit.Assert.assertEquals;

import java.sql.SQLException;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.app.EcommerceBackend.dao.CategoryDAO;
import com.app.EcommerceBackend.dto.Category;

public class CategoryTestCase {

private static AnnotationConfigApplicationContext context;

private static CategoryDAO categoryDAO;

private Category category;

@BeforeClass
public static void init() throws Exception
{
org.h2.tools.Server.createTcpServer().start();

context = new AnnotationConfigApplicationContext();
context.scan("com.app.EcommerceBackend");
context.refresh();
categoryDAO = (CategoryDAO) context.getBean("categoryDAO");
}



@Test
public void testCRUDcategory()
{
//Adding operation
category = new Category();

category.setName("Mobile");
category.setDescription("This is some description for Mobile!");
category.setImageURL("MOB01.png");

assertEquals("Successfully added a category inside the table!", true, categoryDAO.add(category));

category = new Category();

category.setName("Television");
category.setDescription("This is some description for Television!");
category.setImageURL("TEL02.png");

assertEquals("Successfully added a category inside the table!", true, categoryDAO.add(category));

//Fetching and Updating Category
category=categoryDAO.get(2);
category.setName("TV");
assertEquals("Successfully updated a single category in the table!", true, categoryDAO.update(category));

//Deleting A category
category=categoryDAO.get(1);
assertEquals("Successfully deleted a single category in the table!", true, categoryDAO.delete(category));

//Fetching the List
/*assertEquals("Successfully fetched the list of category from the table!", 1, categoryDAO.list().size());*/
}

}

获取错误

  HTTP Status 500 - Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException:
Could not open Hibernate Session for transaction; nested exception is
org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection

java.sql.SQLException: Cannot create PoolableConnectionFactory (Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-193]) org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294) org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039) org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533) org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)

org.h2.jdbc.JdbcSQLException: Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-193] org.h2.message.DbException.getJdbcSQLException(DbException.java:345) org.h2.message.DbException.get(DbException.java:168) org.h2.engine.SessionRemote.connectServer(SessionRemote.java:452) org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:329) org.h2.jdbc.JdbcConnection.(JdbcConnection.java:115) org.h2.jdbc.JdbcConnection.(JdbcConnection.java:99) org.h2.Driver.connect(Driver.java:69)

你也可以查看我的gitHub代码https://github.com/sunilgit1/ECommerce

最佳答案

检查您正在运行的 h2 数据库引擎的版本。并确保 pom.xml 文件中的 h2 版本相同。如果不是将其更改为相同的版本。

如果h2数据库引擎是1.4.196,那么你通过pom.xml为h2数据库驱动添加的依赖也应该是1.4.196。

关于hibernate - org.h2.jdbc.JdbcSQL异常 : Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-193],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com