求教!
先上代码,很简单,测试用的而已:
配置代码
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="newsDao" class="com.memo.dao.NewsDao">
<property name="ds" ref="dataSource" />
</bean>
NewDao.java代码:
public class NewsDao {
public JdbcTemplate jdbcTemplate;
public void setDs(DataSource ds){
this.jdbcTemplate = new JdbcTemplate(ds);
}
public void query(){
System.out.println(jdbcTemplate);
int c = jdbcTemplate.queryForObject("select count(*) from user where user_id>?", new Object[]{1}, Integer.class);
System.out.println("count:"+c);
}
}
Main.java测试类:
public class Main {
public static NewsDao dao;
public static void main(String [] args){
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:/config/bean.xml");
dao = (NewsDao)ctx.getBean("newsDao");
dao.query();
System.out.println(dao.jdbcTemplate);
}
}
打印结果:
org.springframework.jdbc.core.JdbcTemplate@17d59ff
count:2
null
请问为什么jdbcTemplate打印一边为空而另一边不为空?请指教,谢谢。
------解决方案--------------------
我测试是都不为 null 的
完整代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://10.11.9.17:3306/ljn?characterEncoding=utf8&autoReconnect=true"></property>
<property name="username" value="root11"></property>
<property name="password" value="sdxx9898w"></property>
</bean>
<bean id="newsDao" class="com.ljn.others.NewsDao">
<property name="ds" ref="dataSource" />
</bean>
</beans>
package com.ljn.others;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static NewsDao dao;
public static void main(String [] args){
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:/bean.xml");
dao = (NewsDao)ctx.getBean("newsDao");
dao.query();
System.out.println(dao.jdbcTemplate);
}
}
package com.ljn.others;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
public class NewsDao {
public JdbcTemplate jdbcTemplate;
public void setDs(DataSource ds){
this.jdbcTemplate = new JdbcTemplate(ds);
}
public void query(){
System.out.println(jdbcTemplate);
int c = jdbcTemplate.queryForInt("select count(*) from tiezi ");
System.out.println("count:"+c);
}
}
输出:
org.springframework.jdbc.core.JdbcTemplate@670479
count:3
org.springframework.jdbc.core.JdbcTemplate@670479