Java 如何使用扩展JDBCDAO支持的类?
我正在使用一个从JdbcDaoSupport扩展而来的类,现在我得到一个错误Java 如何使用扩展JDBCDAO支持的类?,java,jdbc,Java,Jdbc,我正在使用一个从JdbcDaoSupport扩展而来的类,现在我得到一个错误 Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required 我真的不知道如何指出这一点,所以这个类不会抛出异常 该类如下所示: package org.springframework.jdbc.core.suppo
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required
我真的不知道如何指出这一点,所以这个类不会抛出异常
该类如下所示:
package org.springframework.jdbc.core.support;
import java.sql.Connection;
import javax.sql.DataSource;
import org.springframework.dao.support.DaoSupport;
import org.springframework.jdbc.CannotGetJdbcConnectionException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.jdbc.support.SQLExceptionTranslator;
public abstract class JdbcDaoSupport extends DaoSupport {
private JdbcTemplate jdbcTemplate;
public JdbcDaoSupport() {
}
public final void setDataSource(DataSource dataSource) {
if(this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
this.jdbcTemplate = this.createJdbcTemplate(dataSource);
this.initTemplateConfig();
}
}
protected JdbcTemplate createJdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
public final DataSource getDataSource() {
return this.jdbcTemplate != null?this.jdbcTemplate.getDataSource():null;
}
public final void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
this.initTemplateConfig();
}
public final JdbcTemplate getJdbcTemplate() {
return this.jdbcTemplate;
}
protected void initTemplateConfig() {
}
protected void checkDaoConfig() {
if(this.jdbcTemplate == null) {
throw new IllegalArgumentException("\'dataSource\' or \'jdbcTemplate\' is required");
}
}
protected final SQLExceptionTranslator getExceptionTranslator() {
return this.getJdbcTemplate().getExceptionTranslator();
}
protected final Connection getConnection() throws CannotGetJdbcConnectionException {
return DataSourceUtils.getConnection(this.getDataSource());
}
protected final void releaseConnection(Connection con) {
DataSourceUtils.releaseConnection(con, this.getDataSource());
}
}
但是我想我必须在扩展这个类的类中包含数据源。你知道怎么做吗?你的spring配置中有JDBC模板和数据源的条目吗?在创建启动连接时?不,我并没有配置任何jdbc,我使用了带有自动配置注释的SpringBoot。这是我的猜测,我对SpringBoot的了解有限。在application.properties文件中,我们需要指定数据源信息,如连接url、用户名和密码,我相信这些信息是从中获取的。但我不确定这是否有效。您的spring配置中有JDBC模板和数据源的条目吗?在创建启动连接时?不,我并没有配置任何jdbc,我使用了带有自动配置注释的SpringBoot。这是我的猜测,我对SpringBoot的了解有限。在application.properties文件中,我们需要指定数据源信息,如连接url、用户名和密码,我相信这些信息是从中获取的。但我不确定这是否有效。