Spring。无法加载驱动程序 class:org.hsqldb.jdbc.JDBCDriver
Spring. Cannot load driver class: org.hsqldb.jdbc.JDBCDriver
我正在创建一个简单的应用程序来试验 hsqldb 数据库,但我什至无法开始,因为我的 IDE 给了我一个例外
"Cannot load driver class: 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 class:
@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());
}
}
驱动的class路径我也查了下,已经到位了。我无法想象我做错了什么。
从依赖项中删除 <scope>test</scope>
。您不只是将 hsqldb 用于测试。
此外,spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
是多余的,因为驱动程序是数据源的一部分 url。
我正在创建一个简单的应用程序来试验 hsqldb 数据库,但我什至无法开始,因为我的 IDE 给了我一个例外
"Cannot load driver class: 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 class:
@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());
}
}
驱动的class路径我也查了下,已经到位了。我无法想象我做错了什么。
从依赖项中删除 <scope>test</scope>
。您不只是将 hsqldb 用于测试。
此外,spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
是多余的,因为驱动程序是数据源的一部分 url。