无法使用 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>
我正在尝试使用 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>