用的JdbcTemplate訪問數據庫時,我是一個新手春天,我在下面的春天從網站書籍和教程一些例子,我不能讓我的代碼工作。NulllPointerException春
我試圖訪問使用JdbcTemplate的一個數據庫。這是我的根context.xml中的樣子:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db" />
<property name="username" value="userr" />
<property name="password" value="password" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
<bean id="myDao" class="com.me.myproj.persistence.JdbcMyaDao">
<property name="dataSource" ref="dataSource"/>
</bean>
這是我JdbcMyDao(全部進口都OK,我不會將它們粘貼):
public class JdbcMyDao implements MyDao{
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public String getOpcionById(){
String SQL_Q="select name from options where id=35";
return (String)this.jdbcTemplate.queryForObject(SQL_Q, String.class);
}
}
最後,我的控制器:
@Controller
public class myController {
@RequestMapping(value = "/show", method = RequestMethod.GET)
public String show(Model model){
JdbcMyDao daoP=new JdbcMyDao();
String op=daoP.getOpcionById();
model.addAttribute("op",op);
return "show";
}
}
好的,然後,show.jsp只是打印返回字符串。
所以,這是一個數據庫,一個非常簡單的訪問,但使用的JdbcTemplate(在功能getOpcionById)
我想這是因爲功能的setDataSource永遠不會拼命地跑,當我得到一個NullPointerException,我以爲春天奔跑它通過IoC,我試圖把@Autowired放入jdbcTemplate屬性i JdbcMyDao中,但它也不起作用。有人能告訴我Spring的步驟和我應該採取的步驟嗎?或者我應該做什麼改變,爲什麼?
我想我現在理解得更好。謝謝! – de3