当前位置: 代码迷 >> J2EE >> jdbcTemplate范例打印为空单可以查询的疑惑
  详细解决方案

jdbcTemplate范例打印为空单可以查询的疑惑

热度:253   发布时间:2016-04-17 23:53:15.0
jdbcTemplate实例打印为空单可以查询的疑惑
求教!
先上代码,很简单,测试用的而已:
配置代码
    <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&amp;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


  相关解决方案