弹簧。无法加载驱动程序类:org.hsqldb.jdbc.JDBCDriver

时间:2020-09-12 08:43:00

标签: java spring jdbc hsqldb spring-jdbc

我正在创建一个简单的应用程序来尝试hsqldb数据库,但我什至无法启动,因为我的IDE给了我很多东西

“无法加载驱动程序类:org.hsqldb.jdbc.JDBCDriver”

我已经研究了这个问题,但是没有找到解决方法。
我正在使用Sprint工具套件4.4作为我的IDE。

这是我的application.properties文件:

spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
spring.datasource.url=jdbc:hsqldb:mem:testdb
spring.datasource.username=sa
spring.datasource.password=

这是我的pom.xml(我添加的数量超出了我的需要,我认为问题可能是“依赖不足”):

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.32.3.2</version>
    </dependency>


    <!-- Derby DB -->
    <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>${derby.version}</version>
    </dependency>

    <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.3.2</version>
        <scope>test</scope>
    </dependency>

我也试图更改hsqldb依赖项的版本,但是我没有工作。

这是我简单的 dao 类:

@Transactional
@Repository
public class ProductDaoImpl implements ProductDao {

@Autowired
private JdbcTemplate jdbcTemplate;

@Override
public List<Product> getAllProducts() {
    String query = "SELECT * from products";
    RowMapper<Product> rowMapper = new ProductRowMapper();
    List<Product> list = jdbcTemplate.query(query, rowMapper);
    return list;
}

@Override
public void addProduct(Product product) {
    String query = "INSERT INTO products(id, name) VALUES(?, ?)";
    jdbcTemplate.update(query, product.getId(), product.getName());

}

}

我还检查了驱动程序的类路径,它已经就位。我无法想象我在做什么错。

1 个答案:

答案 0 :(得分:2)

从依赖项中删除<scope>test</scope>。您不是仅将hsqldb用于测试。 另外,spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver是多余的,因为驱动程序是数据源URL的一部分。

相关问题