我试图使用JdbcTemplate将值插入Oracle DB,但它抛出以下异常:
无法使用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>
答案 0 :(得分:0)
此异常很可能是您自己的代码引发的。
并且它很可能被抛出,因为UserDao的dataSource字段为空。
原因是您没有正确使用Spring。而不是要求Spring创建UserDao并在该Spring bean中注入DataSource,而是使用new
自己创建UserDao。所以没有使用Spring上下文,Spring也没有在你的代码中扮演任何角色。
阅读Spring documentation以了解如何创建Spring应用程序上下文并从中获取bean。
答案 1 :(得分:0)
我找到了他们的答案..
1)ApplicationContext和bean未初始化,看起来像..
ApplicationContext ctx = new ClassPathXmlApplicationContext(“userconfig.xml”); UserDao usr =(JobDetailsDao)ctx.getBean(“UDao”);
2)在配置xml中,Dao和Dao实现不是映射器。看起来像。
<bean id="UserDao" class="com.mPowerQuartz.common.DaoImpl.UserDaoImpl">
<property name="jdbcTemplate"> <ref bean = "jdbcTemplate" ></ref>
</property>
</bean>