无法使用 JdbcTemplate 访问数据库值

Can't access the database values using JdbcTemplate

我正在尝试使用 JdbcTemplate 将值插入 Oracle DB,但它引发了以下异常:

Can't access the database values using JdbcTemplate.

这就是我尝试将值插入数据库的方式:

package com.sample.common.Dao;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
public class UserDao  extends JdbcDaoSupport {
    public void insert(){
        System.out.println("Tring to insert");
        String sql = "INSERT INTO SB_TBL_USER (user_id,user_password,user_name,user_email,user_mobile)"+" "
   +"VALUES ('test12', 't1est1', 't2est2', 't7est2','t7estm')";
    getJdbcTemplate().update(sql);
    }
    public static void main(String args[]){
        UserDao dao= new UserDao();
        dao.insert();
    }
}

DataSourceConfiguration.xml

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
    <property name="username" value="sbjdev" />
    <property name="password" value="sbjdev" />
</bean>
<bean id="UserDao" class="com.mPowerQuartz.common.Dao.UserDao.java">
    <property name="dataSource" ref="dataSource" />
</bean>

这个异常很可能是你自己的代码抛出的。

而且很有可能是因为UserDao的dataSource字段为null而抛出。

原因是您没有正确使用 Spring。您不是要求 Spring 创建 UserDao 并将 DataSource 注入那个 Spring bean,而是使用 new 自己创建 UserDao。因此,从未使用过 Spring 上下文,并且 Spring 在您的代码中没有任何作用。

阅读 Spring documentation 以了解如何创建 Spring 应用程序上下文并从中获取 bean。

我找到了他们的答案..

1)ApplicationContext和bean没有初始化,看起来像..

ApplicationContext ctx = new ClassPathXmlApplicationContext("userconfig.xml"); UserDao usr = (JobDetailsDao) ctx.getBean("UDao");

2)在配置xml中,Dao和Dao实现不是mapper。看起来像。

<bean id="UserDao" class="com.mPowerQuartz.common.DaoImpl.UserDaoImpl">
        <property name="jdbcTemplate"> <ref bean = "jdbcTemplate" ></ref> 
        </property> 
</bean>